Python:从另一个位置导入文件

标签 python unit-testing python-import

我不确定我哪里错了,我已经尝试了其他问题中列出的一堆方法,所以我会重新询问,以防我遗漏了什么。

我有以下结构:

|-bin/
  -file.py
|-unittests/
  -__init__.py
  |-test_bin/
    -__init__.py
    -test_file.py

我在 test_file.py 中尝试了以下内容,但没有成功:

1) 导入错误:没有名为 bin.file 的模块

from bin.file import *

2) 导入错误:没有名为 bin.file 的模块

import sys
from os import path
sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))
from bin.file import *

3) ValueError: 尝试在非包中进行相对导入

from ...bin.file import *

我使用的命令是python test_file.py

最佳答案

为了使导入工作正常进行,您需要位于项目的根目录。

但是,您可以在包的根目录添加一个 setup.py 文件,该文件将允许您从任何地方导入函数(见下文):

安装.py:

from setuptools import setup

setup(
    name='test',
    version='0.1',
    packages=['bin']
)

然后在项目的根目录运行以下 shell 命令:

python setup.py develop

enter image description here

通过这些步骤,您应该能够根据需要导入文件。

请注意,test.eff-info 文件夹是自动创建的。

希望对你有帮助

关于Python:从另一个位置导入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59565679/

相关文章:

angular - 使用 Jasmine 测试 Angular queryParams

python - "from gremlin_python.process.graph_traversal import __"在 Python 中起什么作用?

python - 如何忽略 Sentry Python SDK 中的记录器

python - 完整更新 pip 包时出错

python - Python 数组的切片

java - 单元测试方法在运行测试时不使用模拟对象。而是调用实际的类和方法

c# - 单元测试组织

python - 使用 conda 和 poppler 安装后无法导入 pdftotext,Windows 10

python - 如何使用argv将模块加载到python中

python - 推断字段分隔文件信息的库