在pycharm中如何全局管理sys.path

2024-10-04 07:24:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有很多unittests,它们不是从/python2.7/site-packages/而是从完全不同的目录导入内容。所以我要做的是用sys.path.append在每个测试文件中做一些猴子补丁,让我的Python知道我需要什么。

有没有一种方法可以为整个Pycharm项目全局附加sys.path,而不必为每个文件操心?

更新: 设置默认工作目录没有帮助。例如,如果我将工作目录设置为/Users/1111/_projects/_empty_dir/,如下所示:

screenshot

然后运行这个

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

sys.path上没有/Users/1111/_projects/_empty_dir/


Tags: pathmaclibpackagessyslibrarysiteframework
2条回答

这是一个相当简单的方法,遵循以下路径:

  1. 设置
  2. 项目:
  3. 项目翻译
  4. 选择要为其更新sys.path的解释器
  5. 找到右下角的图标,“显示所选解释器的路径”
  6. 将文件夹添加到路径列表中。

是的。

我在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查看现有的测试配置

如果不想删除现有的测试配置,只需分别为每个现有的测试配置指定工作目录。

enter image description here

相关问题 更多 >