如何使用VM和PyCharm配置自定义PYTHONPATH?


85

我正在将IntelliJ与Python插件和Remote Interpreter功能配合使用,以与我的Vagrant VM通信。它正确设置了远程解释器以使用我的VM的解释器。但是,我在VM中使用了自定义的PYTHONPATH,并且我希望IntelliJ能够识别该路径,并在开发时将模块包括在该路径中。

如何配置IntelliJ / PyCharm的远程解释器以在VM上使用自定义PYTHONPATH?


我确实有这个问题,除了我有许多遵循通用方案的项目,并且现在(在Emacs中)我动态地设置了所有内容。在Pycharm中按项目设置它似乎是一种负担。
AdamC'2

Answers:


124

对于PyCharm 5(或2016.1),您可以:

  1. 选择“首选项”>“项目解释器”
  2. 在解释器选择器的右侧,有一个“ ...”按钮,单击它
  3. 选择“更多...”
  4. 弹出一个新的“项目解释器”窗口
  5. 选择最右边的按钮(名为“显示所选解释器的路径”)
  6. 弹出“解释器路径”窗口
  7. 单击“ +”按钮>选择所需的PYTHONPATH目录(包含python模块的文件夹),然后单击“确定”。
  8. 做完了!好好享受!

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明 在此处输入图片说明


这是我在项目中所做的,非常烦人。我有项目A,项目普通项目,项目测试。为了在项目测试下运行单元测试,我添加了项目依赖项,因此项目测试取决于项目A和common,但是我仍然必须手动将A和common的文件夹添加到PYTHONPATH中。
thinkanotherone's

这会将目录添加到该解释器的全局PYTHONPATH中,对吗?不只是项目?

@Ray是的,似乎它将更改全局解释器设置。但是我们可以将不同的virtualenv用于不同的项目,并为其设置不同的PYTHONPATH。
菲尔

请注意,您必须首先将解释器设置为项目的解释器,否则,最左边的按钮将被禁用
ospider

在OSX上,Cmd + Shift + Period在选择对话框(例如/ usr)中显示隐藏的文件夹-因为似乎没有办法只键入路径。
Flash

83

有关编辑PYTHONPATH或解决导入检查问题以进行代码检查的说明,如下所示:

  1. 打开偏好设置(在Mac上,键盘快捷键是⌘,)。

如何从菜单进入设置

  1. Project Structure在左侧的边栏中查找Project: Your Project Name

  2. 在右侧栏中添加或删除模块

Pycharm 4.5中的项目结构设置

编辑:我已经为PyCharm 4.5更新了此屏幕截图


这仍然适用吗?我应该拥有最新的PyCharm专业人士,但是我却缺少很多此类。包括项目结构!但是谢谢你发布这个!!!
R Claven 2015年

1
嗨,我已经更新了最新版本的PyCharm 4.5的屏幕截图。看来他们重新整理了侧边栏中的设置。
比约恩

实际上,我欠您一个非常感谢。我搞砸了“默认设置”而不是项目设置。您在这里的回答帮助我意识到了这一点,然后我解决了许多差异,并且奏效了。谢谢!
R克拉文

有没有办法在全球范围内做到这一点?将/Library/Python/2.7/site-packages和/usr/local/lib/python2.7/site-packages添加到我发臭的每个项目中。
jeremyjjbrown

是的,@ jeremyjjbrown,我相信您可以通过单击“项目解释器”并选择包含所需站点包的解释器路径来实现。这个问题只是回答使特定于项目的软件包可用于其项目。您甚至可以使用requirements.txt将所有deps项目添加到pycharm中。
比约恩

16

对我来说解决方案是去

Run > Edit Configuration > Defaults > Python

然后管理

  • “将内容根添加到PYTHONPATH”和
  • “将源根添加到PYTHONPATH”

复选框,以及设置“工作目录”字段。

如果您设置了自己的“运行/调试配置”,则可能需要转到

Run > Edit Configuration > Python > [Whatever you called your config]

并在那里编辑。

我的问题是我想将整个存储库包含在我的PyCharm 2016.2项目中,但是实际的python源代码根只有一个子文件夹。我通过右键单击该文件夹将其添加为“源根目录”

Mark directory as > Source Root

然后在“运行/调试”配置菜单中取消选中“将内容根添加到PYTHONPATH”,然后选中“将源根添加到PYTHONPATH”。然后,我通过执行以下操作检查了文件夹路径:

import sys
logger.info(sys.path)

输出:

[
    '/usr/local/my_project_root/my_sources_root', 
    '/usr/local/my_project_root/my_sources_root', 
    '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', 
    '/usr/lib/python3.4/lib-dynload', 
    '/usr/local/lib/python3.4/dist-packages', 
    '/usr/lib/python3/dist-packages'
]

但是,没有修复,它说:

[
    '/usr/local/my_project_root/my_sources_root', 
    '/usr/local/my_project_root',                   <-- NOT WANTED
    '/usr/lib/python3.4', 
    '/usr/lib/python3.4/plat-x86_64-linux-gnu', 
    '/usr/lib/python3.4/lib-dynload', 
    '/usr/local/lib/python3.4/dist-packages', 
    '/usr/lib/python3/dist-packages'
]

这意味着我包括了项目根文件夹。这使我迷路了。


谢谢,我不是Python专家,并且alwasy想知道如何窥视我可以到达的导入路径!(该sys.path部分)
拉斯蒂坎

这不是理想的,因为需要更新每个运行配置。
StephenBoesch

@javadba如果您希望它适用于所有配置,请转至Run > Edit Configuration > Templates > Python
安德烈·C·安徒生

@AndréC.Andersen谢谢!我从来没有模板之前。
StephenBoesch

13

这是通过PyCharm Community 2019.1完成的

  1. 转到项目设置 设定值
  2. 转到项目结构,然后右键单击要添加的目录,然后单击“源” 项目结构-添加源

这应该将目录添加到您的pythonpath 项目结构-添加资源后


3

对Pycharm的最新版本(例如2019.2)提供的正确答案phil的更新。

转到“文件”>“设置”,找到您的项目,然后选择“项目解释器”。现在,单击所选项目解释器(以前是...)右侧带有齿轮的按钮。

在此处输入图片说明

从下拉菜单中选择显示全部...,然后在打开的对话框中单击带有文件夹和两个子文件夹的图标。

在此处输入图片说明

出现一个包含当前解释器路径的对话框,单击+添加一个。


谢谢!!!我和一位同事一直在努力设置与我的环境相匹配的环境,我记得要执行这些步骤,但是我有一条重要的道路(甚至说“由用户添加”)。
Drarok

2

以我的经验,根本不使用PYTHONPATH变量通常是错误的方法,因为它在Windows上不能很好地与VENV配合使用。加载时的PYTHON将在路径之前添加PYTHONPATH来准备路径,这可能导致精心准备的Venv优先获取全局站点包。

而不是使用PYTHON路径,而是在相关的site-packages目录中包含一个pythonpath.pth文件(尽管要注意,自定义python有时会在不同的位置查找它们,例如,对于.pth文件,它们看起来与python.exe在同一目录中),每个虚拟环境。这将像PYTHONPATH一样,只是它特定于python安装,因此对于每个python安装/环境,您可以有一个单独的目录。如果您只是将VENV的python作为python安装,则Pycharm与VENV紧密集成。

请参阅例如此SO问题以获取有关.pth文件的更多详细信息。



0

那么,您可以通过进入口译员的对话框来完成此操作。单击您正在使用的解释器,在它下面,您应该看到两个选项卡,一个称为Packages,另一个称为Path。

单击路径,然后将您的VM路径添加到该路径。


当我单击远程解释器并添加类路径时,当我指定远程目录(如/home/vagrant/mydir)时会抱怨。我需要在路径前加些东西吗?我的界面有所不同,因为我将IntelliJ与Python插件一起使用,如果有帮助,则不使用PyCharm。
baalexander 2013年

1
好吧,您只需转到SSH解释器,然后从vagrant文​​件中加载内容,即可在其中进行选择。
Games Brainiac

0

在pycharm 5中,遵循以下步骤,https: //www.jetbrains.com/pycharm/help/configuring-python-interpreter-for-a-project.html

1)打开“设置”对话框,然后单击“项目解释器”页面。
2)在“项目”窗格中,选择所需的项目。
3)对于所选项目,从可用的Python解释器和虚拟环境列表中选择SDK。


0

在Intellij v2017.2中,您可以转到:

run > edit configurations > click ... next to the field 'Environment variables' > click the green + sign

名称= PYTHONPATH

值= your_python_path

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.