我有一堆单元测试,它们不是/python2.7/site-packages/从一个完全不同的目录导入东西.所以我所做的是在每个测试文件中进行一些猴子修补,sys.path.append以使我的Python看到我需要的东西.
有没有办法在sys.path不影响每个文件的情况下全局附加整个Pycharm项目?
更新:设置默认工作目录没有帮助.例如,如果我将工作目录设置为/Users/1111/_projects/_empty_dir/如此:

然后运行它
import sys
for p in sys.path: print p
Run Code Online (Sandbox Code Playgroud)
我看到的就是这个
/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
Run Code Online (Sandbox Code Playgroud)
并没有/Users/1111/_projects/_empty_dir/上sys.path.
这是一个相当简单的方法,请遵循以下路径:
是的。
我在 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
Run Code Online (Sandbox Code Playgroud)
PYTHONPATH如果您已经有一些现有的测试配置,您可能需要删除它们,以便在运行测试或为每个配置设置工作目录时重新创建它们。您可以从同一对话框窗口中删除它们
Run->Edit Configurations然后展开Python Tests以查看您现有的测试配置
如果您不想删除现有的测试配置,只需单独指定每个现有测试配置的工作目录即可。
