加载到终端和Pycharm中的不同环境变量

2024-05-13 02:14:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用Python从其bash命令调用一个应用程序。我将应用程序的路径添加到path环境变量中,以便在终端中工作。 但是,在Pycharm中执行此操作时,它不起作用。我发现,这是因为当我在Pycharm中调用应用程序时,环境变量显然没有全部加载

这是我在终端中所做的:

(save) philipp@philipp-Blade-15-Advanced-Model-Early-2020:~$ python
Python 3.8.2 (default, Mar 25 2020, 17:03:02) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ["PATH"]
'/home/philipp/anaconda3/envs/save/bin:/home/philipp/anaconda3/condabin:/home/philipp/sumo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'

当我在Pycharm中运行相同的命令时,我得到以下输出:

'/home/philipp/anaconda3/envs/save/bin:/home/philipp/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'

Pycharm的输出缺少/home/philipp/sumo/bin,这是我安装应用程序的地方,我需要从中调用它。我对此做了很多调查,但无法找出问题所在。。。在这两种情况下,我使用相同的Python环境。你能指出这个问题吗


Tags: 命令应用程序终端homebinossaveusr
1条回答
网友
1楼 · 发布于 2024-05-13 02:14:50

你的东西对我有用。 我所做的是:

  1. 我在最后一行用export PATH=/THIS/IS/TEST/PATH:$PATH编辑了我的.bashrc
  2. 退出终端并创建一个新的终端以刷新我的实例
  3. 使用echo $PATH检查路径是否正确加载了/THIS/IS/TEST/PATH
  4. 使用charm命令从当前终端打开pycharm
  5. 复制并粘贴代码
import os
print(os.environ["PATH"])
  1. 检查了打印的输出,我找到了/THIS/IS/TEST/PATH

我从一个终端运行,也使用水蟒

你是从终点站跑来的吗


(替代解决方案)

如果它仍然不适用于您,为什么不创建一个包含PATH变量的txt文件,并在调用~/.bashrc时刷新它呢

比如说,

  1. ~/.bashrc文件中,将其放在最后一行:
echo "$PATH" > ~/bash_path.txt
  1. 然后在python代码中将内容作为变量读取
PATH = open('/absolute/path/to/bash_path.txt', 'r').read()
print(PATH)

它应该具有与os.environ命令相同的输出

相关问题 更多 >