Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用PyTest时是否从父目录导入文件?_Python_Pytest - Fatal编程技术网

Python 使用PyTest时是否从父目录导入文件?

Python 使用PyTest时是否从父目录导入文件?,python,pytest,Python,Pytest,我正在使用PyTest,但它似乎无法运行我的导入语句 我的目录结构如下所示: -[app] -script1.py -[tests] -test1.py 我的test1.py文件包括以下行: from script1 import my_func 当我从命令行运行pytest时,我得到了一个错误,比如ModuleNotFoundError:No module name script1 我尝试将此语句添加到上面的目录中,但无效: import os os.chdir('..')

我正在使用PyTest,但它似乎无法运行我的导入语句

我的目录结构如下所示:

-[app]
   -script1.py
-[tests]
   -test1.py
我的
test1.py
文件包括以下行:

from script1 import my_func
当我从命令行运行pytest时,我得到了一个错误,比如
ModuleNotFoundError:No module name script1

我尝试将此语句添加到上面的目录中,但无效:

import os
os.chdir('..')

就像你说的。script1.py模块位于[应用程序]中 应该如此

from app.script1 import my_func
或者如果要从script.py导入所有函数

import app.script1 
只需调用任何函数

script1.anyfunction()

就像你说的。script1.py模块位于[应用程序]中 应该如此

from app.script1 import my_func
或者如果要从script.py导入所有函数

import app.script1 
只需调用任何函数

script1.anyfunction()

这有用吗
PYTHONPATH=app/pytest tests/test1.py
应该可以工作,或者(如果使用Python 3)在项目根目录中添加一个空的
conftest.py
文件(沿着dirs
app
tests
),并将导入从app.script1 import my_func更改为
<代码>应用程序
然后被视为隐式命名空间包。这有帮助吗
PYTHONPATH=app/pytest tests/test1.py
应该可以工作,或者(如果使用Python 3)在项目根目录中添加一个空的
conftest.py
文件(沿着dirs
app
tests
),并将导入从app.script1 import my_func更改为
<代码>应用程序
然后被视为一个隐式命名空间包。抱歉,要澄清-[app]是一个文件夹,而不是一个文件请尝试以下操作:抱歉,要澄清-[app]是一个文件夹,而不是一个文件请尝试以下操作: