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

问题描述 投票:0回答:4

我有一堆单元测试,它们不是从

/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

并且

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

python pycharm
4个回答
25
投票

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

  1. 设置
  2. 项目:
    <your project name>
  3. 项目翻译
  4. 选择您想要更新的解释器
    sys.path
  5. 找到右下角的图标,
    'show paths for the selected interpreter'
  6. 将该文件夹添加到路径列表中。

13
投票

现在有更好的方法来做到这一点。您可以

Mark Directory as
Sources root
。当您右键单击项目中的任何目录时,此选项将出现在底部。


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

如果您不想删除现有的测试配置,只需单独指定每个现有测试配置的工作目录即可。

enter image description here


0
投票

PyCharm 2023.3.2 新布局中的配置位置

© www.soinside.com 2019 - 2024. All rights reserved.