我有一堆单元测试,它们不是从
/python2.7/site-packages/
而是从完全不同的目录导入东西。所以我所做的就是使用 sys.path.append
在每个测试文件中进行一些猴子修补,以使我的 Python 看到我需要的内容。
有没有一种方法可以为整个 Pycharm 项目全局追加
sys.path
,而不必费心处理每个文件?
更新: 设置默认工作目录没有帮助。例如,如果我将工作目录设置为
/Users/1111/_projects/_empty_dir/
,如下所示:
然后运行这个
import sys
for p in sys.path: print p
我看到的是这个
/Users/1111/.virtualenvs/blesk/bin/python /Users/1111/_projects/_testing_pycharm/importer.py
/Users/1111/_projects/_testing_pycharm
/Users/1111/.virtualenvs/blesk/lib/python2.7/site-packages/six-1.9.0-py2.7.egg
/Users/1111/.virtualenvs/blesk/lib/python2.7/site-packages/parse-1.6.6-py2.7.egg
/Users/1111/_projects/_testing_pycharm
/Users/1111/.virtualenvs/blesk/lib/python27.zip
/Users/1111/.virtualenvs/blesk/lib/python2.7
/Users/1111/.virtualenvs/blesk/lib/python2.7/plat-darwin
/Users/1111/.virtualenvs/blesk/lib/python2.7/plat-mac
/Users/1111/.virtualenvs/blesk/lib/python2.7/plat-mac/lib-scriptpackages
/Users/1111/.virtualenvs/blesk/lib/python2.7/lib-tk
/Users/1111/.virtualenvs/blesk/lib/python2.7/lib-old
/Users/1111/.virtualenvs/blesk/lib/python2.7/lib-dynload
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/Users/1111/.virtualenvs/blesk/lib/python2.7/site-packages
Process finished with exit code 0
并且
/Users/1111/_projects/_empty_dir/
上没有 sys.path
。
现在有更好的方法来做到这一点。您可以
Mark Directory as
为 Sources root
。当您右键单击项目中的任何目录时,此选项将出现在底部。
是的。
我使用的是 Mac,使用 PyCharm 4.5.1 专业版。您的平台和版本可能有点不同,但如果您确保使用的是最新版本,它应该可以工作。
编辑:我已经更新了这个答案并上传了新的屏幕截图。
您想要的是设置工作目录和
PYTHONPATH
环境变量。
工作目录设置运行任务使用的目录。并且
PYTHONPATH
环境变量将目录添加到 sys.path
前往
Run
-> Edit Configurations
在出现的对话框中,导航至
Defaults
-> Python tests
-> Unittests
设置你的工作目录和
PYTHONPATH
环境变量,一切就都准备好了。您的测试将自动从该工作目录运行,并具有您想要的 sys.path。如果您用冒号分隔多个路径,则可以在 PYTHONPATH
环境变量中包含多个路径 :
例如:
PYTHONPATH=/path/to/dir:/path/to/other/dir
如果您已经有一些现有的测试配置,您可能需要删除它们,以便在运行测试或为每个配置设置工作目录和
PYTHONPATH
时重新创建它们。您可以从同一对话框窗口中删除它们
Run
-> Edit Configurations
,然后展开 Python Tests
以查看现有的测试配置
如果您不想删除现有的测试配置,只需单独指定每个现有测试配置的工作目录即可。