我有一堆单元测试可以导入不是来自/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
。
答案 0 :(得分:4)
是
我在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
以查看您现有的测试配置
如果您不想删除现有的测试配置,只需为每个现有测试配置单独指定工作目录。
答案 1 :(得分:3)
这是一个相当简单的方法,请遵循以下路径:
答案 2 :(得分:3)
现在有一种更好的方法。您可以Mark Directory as
作为Sources root
。右键单击Project中的任何目录,此选项将显示在底部。