python tox - 没有这样的文件或目录错误

Ziv*_*iva 2 python packaging

我有一个项目,假设'my_project'使用以下结构调用:

my_project
|
 tox.ini
 setup.py
 src
 |
  client.py
  server.py
  config.json
  # other files
  tests.py
Run Code Online (Sandbox Code Playgroud)

文件中定义的类client.py和server.py包含在文件夹 src 中的每个文件的使用信息config.json和tests.py实现py.test测试。在客户端/服务器文件中,我按如下方式读取配置文件:

with open('./config.json') as infile:
     self.parameters = json.load(infile)
Run Code Online (Sandbox Code Playgroud)

接下来,我创建了一个 tox.ini 文件,如下所示:

[tox]
envlist = py27,cov

[testenv]
#commands = py.test --cov=src/client.py src/tests.py -v
commands = py.test -sv --doctest-modules src/__init__.py src/tests.py


[testenv:py27]
commands = coverage erase
           coverage run --source=src -m pytest
           coverage report -m
deps = pytest
Run Code Online (Sandbox Code Playgroud)

但是当我运行tox命令时出现错误:"No such file or directory: 'config.json'". 如何设置正确的路径以确保tox可以找到所有必需的文件?

jwo*_*der 6

尝试打开'./config.json'将始终让 Python 在进程的当前目录中查找;这就是文件路径的工作方式。如果要在与正在打开的config.json文件相同的目录中打开文件,则.py需要包含包含该.py文件的目录的路径:

with open(os.path.join(os.path.dirname(__file__), 'config.json')) as infile:
Run Code Online (Sandbox Code Playgroud)