ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

我确实有这个问题,除了我有许多遵循通用方案的项目并且现在(在 Emacs 中)我动态设置了所有内容。在 Pycharm 中基于每个项目进行设置看起来像是一种负担。

p
phil

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

选择 Preferences > Project Interpreter 在解释器选择器右侧有一个“...”按钮,单击它选择“更多...”弹出一个新的“Project Interpreters”窗口选择最右边的按钮(名为“show paths for the选择解释器”)弹出“解释器路径”窗口单击“+”按钮>选择所需的 PYTHONPATH 目录(包含 python 模块的文件夹),然后单击确定完成!好好享受!

https://i.stack.imgur.com/wqbAk.png

https://i.stack.imgur.com/gQmnA.png

https://i.stack.imgur.com/SRk8Qm.png


这就是我在项目中所做的,太烦人了。我有项目 A ,项目通用,项目测试。为了在项目测试下运行单元测试,我添加了项目依赖项,因此项目测试依赖于项目 A 和 common,但我仍然需要手动将 A 和 common 中的文件夹添加到 PYTHONPATH 中。
这会将目录添加到该解释器的全局 PYTHONPATH 对吗?不只是项目?
@Ray 是的,似乎它会改变全局解释器设置。但是我们可以为不同的项目使用不同的 virtualenv,并为它们设置不同的 PYTHONPATH。
请注意,您必须首先将解释器设置为项目的解释器,否则,最左边的按钮将被禁用
在 OSX 上,Cmd+Shift+Period 在选择对话框中显示隐藏文件夹(例如 /usr)——因为似乎没有办法只输入路径。
B
Bjorn

编辑 PYTHONPATH 或修复代码检查的导入解析问题的说明如下:

打开首选项(在 Mac 上,键盘快捷键是 ⌘,)。

https://i.stack.imgur.com/o9f2D.png

在左侧边栏中的项目下查找项目结构:您的项目名称在右侧边栏上添加或删除模块

https://i.stack.imgur.com/sUjFS.png

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


这仍然适用吗?我应该有最新的 PyCharm 专业,但我错过了很多这些类别......包括项目结构!但是谢谢你发这个!!!
嗨,我更新了最新版本 PyCharm 4.5 的屏幕截图。看起来他们重新组织了侧边栏中的设置。
事实上,我欠你一个巨大的感谢。我弄乱了“默认设置”而不是项目设置。您在这里的回答帮助我意识到了这一点,然后我解决了许多差异并且它起作用了。谢谢你!
有没有办法在全球范围内做到这一点?将 /Library/Python/2.7/site-packages 和 /usr/local/lib/python2.7/site-packages 添加到我打开的每个项目中都很臭。
是的@jeremyjjbrown,我相信您可以通过单击“项目解释器”并选择具有所需站点包的解释器路径来做到这一点。这个问题只是回答让他们的项目可以使用项目特定的包。你甚至可以使用 requirements.txt 在 pycharm 中添加你所有的 deps 项目。
A
André C. Andersen

对我来说,解决方案是去

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 专家,一直想知道如何查看我可以到达的导入路径! (那个 sys.path 部分)
这并不理想,因为需要更新每个运行配置。
@javadba 如果您希望它适用于所有配置,请转至 Run > Edit Configuration > Templates > Python
@AndréC.Andersen 谢谢!我以前从未看过模板。
d
dustindorroh

这是通过 PyCharm Community 2019.1 完成的

转到项目设置转到项目结构,然后右键单击要添加的目录,然后单击“源”

https://i.stack.imgur.com/H6WTZ.jpg


F
Fanta

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

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

https://i.stack.imgur.com/d5iAy.png

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

https://i.stack.imgur.com/0mR49.png

您会看到一个包含当前解释器路径的对话框,单击 + 以添加更多。


谢谢你!!!我和一位同事一直在努力将他的环境设置为与我的环境相匹配,我不记得做过这些步骤,但我有一条重要的路径(甚至说“由用户添加”)。
C
Community

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

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

有关 .pth 文件的更多详细信息,请参见例如 this SO question....


R
Richard Keene

https://i.stack.imgur.com/hlddk.png


G
Games Brainiac

好吧,您可以通过转到口译员的对话框来做到这一点。单击您正在使用的解释器,在它下方,您应该会看到两个选项卡,一个称为 Packages,另一个称为 Path。

单击路径,然后将您的虚拟机路径添加到其中。


当我单击远程解释器并添加一个类路径时,它会在我指定一个远程目录(如 /home/vagrant/mydir)时报错。我需要在路径前加上一些东西吗?我的界面有点不同,因为我使用的是带有 Python 插件的 IntelliJ,而不是 PyCharm(如果有帮助的话)。
好吧,您可以转到 SSH 解释器,然后从 vagrant 文件中加载内容,这是一个选项。
S
Saurabh

在 pycharm 5 中遵循这个,https://www.jetbrains.com/pycharm/help/configuring-python-interpreter-for-a-project.html

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


J
Joris Kinable

在 Intellij v2017.2 中,您可以访问:

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

名称= PythonPATH

值= your_python_path


N
Nitish Kumar

Pycharm 2020.3.3 CE ZorinOS(Linux)文件>设置>项目结构> {选择文件夹}>标记为源(蓝色文件夹图标)>应用

验证:

import sys
print(sys.path)

此处应列出所选路径。