使用venv时,环境$ PATH不同

塞尔吉奥佩雷拉

我在Mac(OSX特立独行者)上使用PyCharm运行如下所示的简单脚本。它所做的只是打印PATH变量。我在项目目录中有一个virtualenv。我在PyCharm中添加了“运行配置”,并使用其他Python对其进行了尝试:

# file mytest.py
import os
print "PATH: ", os.environ['PATH']

当我使用系统默认的python(/ usr / bin / python)运行时,它会打印PATH的正确值(即,我在.bash_profile文件中配置的PATH),该值很长并且包含许多目录。

但是,当我选择venv的Python时,路径将减少为: /usr/bin:/bin:/usr/sbin:/sbin:/Users/myname/projects/myproj/venv/bin

如果我从终端窗口运行脚本,则不会发生这种情况。在这种情况下,它会为系统的python和venv python显示正确的PATH。如果我停用venv并运行,它也不会发生venv/bin/python mytest.py

从PyCharm运行并使用venv时,有人知道如何设置正确的PATH值吗?

德米特里·菲利波夫

您可能应该知道所有环境变量都是继承的。当您在.bash_profile中定义环境变量时,它将在您的终端(bash)以及将要从终端启动的所有进程中可用(这些进程将是bash进程的子进程)。这就是为什么在终端中运行脚本时会获得期望值的原因。

您不是从终端启动PyCharm的,因此它不会继承PATH。Python或venv(它们是从PyCharm启动的)也是如此。

要解决您的问题,您可以在此处使用3个选项:只需从终端启动PyCharm或将.bash_profile的PATH变量定义移至会话初始化脚本(PATH将在系统范围内定义)或在PyCharm的运行配置中复制PATH(该选项可以那里)

祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

IPython使用与Shell不同的$ PATH环境

使用 ssh 与使用 java 时 $PATH 不同

使用venv时是否需要激活虚拟环境

使用Path.Combine()时,源和目标必须不同

在使用venv虚拟环境时,应将哪些文件提交到git存储库?

桌面环境的$ PATH环境变量与Shell中的变量不同吗?

执行在不同虚拟环境/ venv下构建的python脚本?

在不同环境中使用cp的不同实现

如果从不同位置打开命令提示符,为什么PATH环境变量值不同?

JavaScript - Moment 和 Date.toLocaleDateString 在使用不同的语言环境时不断返回我的时间

使用Foreman时如何为测试和开发设置不同的环境变量

在Ubuntu 18.04上使用不同于GNOME / Unity的环境时,如何调整屏幕亮度?

Vim 在生成新终端时使用不同的配置或 shell 环境变量

在新贵的脚本中使用setuid时,为什么我的RubyGems环境不同?

使用不同的Python版本创建虚拟环境时出现问题

使用英语语言环境时出现奇怪的path_helper错误

使用pip安装时将python脚本添加到PATH环境变量中

使用os.path.expandvars时防止空环境变量

PATH变量显示不同的值(命令提示符与环境变量对话框)

为什么我的PATH环境变量与命令提示符不同?

使用venv时出现ModuleNotFoundError

哪个 python 与 venv 不同

从Applet回显到Java控制台时,与在CMD中回显时,PATH是不同的

激活venv时,是否可以自动加载环境变量?

为什么当我在编辑器中并使用 .exe 时 std::filesystem::current_path() 返回不同的变量

等/环境== $ PATH?

如何从我的Mac应用程序中访问终端的$ PATH变量,它似乎使用了不同的$ PATH

当仅执行目录时,PATH在bash和csh中的行为不同?

通过上下文菜单运行cmd时,PATH变量不同