使用venv时环境$ PATH不同

 小楼GH81_660 发布于 2023-01-30 09:44

我在mac(OSX mavericks)上使用PyCharm来运行如下所示的简单脚本.它只是打印PATH变量.我在项目目录中有一个virtualenv.我在PyCharm中添加了一个Run Configuration并尝试使用不同的Pythons:

# 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值?

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

    你不是从终端启动PyCharm,所以它不会继承PATH.Python或venv也是如此(他们是从PyCharm发起的).

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

    祝好运!

    2023-01-30 09:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有