将路径添加到Python中 macOS

78 投票
8 回答
414187 浏览
提问于 2025-04-16 02:11

我原以为

import sys
sys.path.append("/home/me/mydir")

是把一个文件夹加到我的python路径里。

如果我打印出sys.path,发现我的文件夹在里面。

可是我打开一个新的命令窗口时,它又不见了。

但不知怎么的,Python却无法导入我保存在那个文件夹里的模块。

我到底哪里做错了呢?

我听说修改.profile或.bash_profile可以解决这个问题。

我需要加上:

PATH="/Me//Documents/mydir:$PYTHONPATH"
export PATH

才能让它工作吗?

8 个回答

11

我不太明白为什么Matthew的解决方案对我没用(可能是因为我在用OSX10.8,或者跟macports有关)。不过我在~/.profile文件的最后加了以下内容:

export PYTHONPATH=/path/to/dir:$PYTHONPATH

现在我的目录已经在pythonpath上了 -

my-macbook:~ aidan$ python
Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/path/to/dir', ...  

我可以从那个目录导入模块了。

26

在MAC OS上,你可以通过输入命令 which pythonwhich python3 来找到python或python3的位置。(这个方法在Linux上也可以用)

执行后,它会给你类似这样的结果:

对于python

/usr/local/bin/python

对于python3

/Library/Frameworks/Python.framework/Versions/3.9/bin/python3

把路径添加到你的 bash_profile 文件中

在你的终端中输入

sudo nano ~/.bash_profile

输入你的密码,然后粘贴以下几行内容

PYTHONPATH="/Library/Frameworks/Python.framework/Versions/3.9/bin/python3"
export PYTHONPATH

control + x 退出,然后在被问到是否保存时按 y 来保存

按 `enter' 返回终端窗口

使用以下命令在终端中更新它,运行

source ~/.bash_profile

现在python3的路径应该已经更新了!!

99

sys.path 的修改只在当前的 Python 解释器运行期间有效。如果你想让这个修改永久生效,就需要修改 PYTHONPATH 环境变量:

PYTHONPATH="/Me/Documents/mydir:$PYTHONPATH"
export PYTHONPATH

需要注意的是,PATH 是用来存放可执行文件的系统路径,这个和 PYTHONPATH 是完全不同的。

**你可以把上面的内容写进 ~/.bash_profile 文件里,然后用 source ~/.bash_profile 命令来使其生效。

撰写回答