python在mac系统配置PYTHONPATH

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python在mac系统配置PYTHONPATH相关的知识,希望对你有一定的参考价值。

参考技术A 问题:在pycharm里面的自动化脚本可以跑成功,但是在终端通过命令跑脚本总是提示包找不到。

解决方法:
在终端输入:echo $PYTHONPATH
输出为空,说明机器没有配置PYTHONPATH,在终端运行py文件的时候会去PYTHONPATH找依赖的包。现在这个配置为空,肯定找不到任何的包,所以接下来配置这个文件

正确的PYTHONPATH从哪里来呢?
我把pycharm里面的PYTHONPATH拷贝出来了。
在pycharm里面,在工程项目的任何一个py文件里导入sys包,用 print(sys.path)即可查看PYTHONPATH
,打印出来是一个列表,多个路径以英文冒号分割,组装成我们一会要用的内容。
具体操作是:在终端敲入命令sudo vi ~/.bash_profile,打开后编辑加入PYTHONPATH内容,内容就是我们刚刚组装的PYTHONPATH,如上图。
退出终端编辑模式(按esc),敲:wq!这个命令就可以保存推出。
然后在刷一下环境变量 ,敲命令:source ~/.bash_profile。

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

【中文标题】如何使用 VM 和 PyCharm 配置自定义 PYTHONPATH?【英文标题】:How to configure custom PYTHONPATH with VM and PyCharm? 【发布时间】:2013-06-16 09:43:55 【问题描述】:

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

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

【问题讨论】:

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

您可以通过转至口译员的对话框来执行此操作。单击您正在使用的解释器,在其下方,您应该会看到两个选项卡,一个称为 Packages,另一个称为 Path。

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

【讨论】:

当我点击远程解释器并添加一个类路径时,当我指定一个远程目录(如/home/vagrant/mydir)时它会报错。我需要在路径前加上一些东西吗?我的界面有点不同,因为我使用的是带有 Python 插件的 IntelliJ,而不是 PyCharm(如果有帮助的话)。 嗯,你可以去 SSH 解释器,然后从 vagrant 文件中加载东西,这是一个选项。【参考方案2】:

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

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

    Project: Your Project Name下方左侧边栏中查找Project Structure

    在右侧边栏添加或删除模块

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

【讨论】:

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

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

    选择首选项>项目解释器 解释器选择器右侧有一个“...”按钮,点击它 选择“更多...” 弹出一个新的“项目解释器”窗口 选择最右边的按钮(名为“显示所选解释器的路径”) 弹出“解释器路径”窗口 点击“+”按钮>选择你想要的PYTHONPATH目录(包含python模块的文件夹)并点击OK 完成!尽情享受吧!

【讨论】:

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

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

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

【讨论】:

【参考方案5】:

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

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

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

【讨论】:

【参考方案6】:

对我来说,解决办法是去

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 &gt; Edit Configuration &gt; Templates &gt; Python @AndréC.Andersen 谢谢!我以前什至从未看过 模板【参考方案7】:

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

run &gt; edit configurations &gt; click ... next to the field 'Environment variables' &gt; click the green + sign

名称= PYTHONPATH

值= your_python_path

【讨论】:

【参考方案8】:

这是通过 PyCharm Community 2019.1 完成的

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

这应该将目录添加到您的 pythonpath

【讨论】:

【参考方案9】:

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

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

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

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

【讨论】:

谢谢!!!我和一位同事一直在努力将他的环境设置为与我的环境相匹配,我记得执行这些步骤,但我有一条重要的路径(甚至说“添加按用户”)。【参考方案10】:

给定解释器的 PYTHONPATH 的最新 12/2019 选择。

【讨论】:

【参考方案11】:

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

验证:

import sys
print(sys.path)

应在此处列出所选路径。

【讨论】:

以上是关于python在mac系统配置PYTHONPATH的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mac 上编辑 PYTHONPATH?

将Python的库路径添加到系统环境变量PYTHONPATH中,如python安装在C:PYTHO

在 Python 脚本中,如何设置 PYTHONPATH?

Mac Python多版本共存

python怎么设置环境变量

如何将python的路径加到path中