我在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] 删除。
我来说两句