66

我想

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

正在将一个目录附加到我的 pythonpath

如果我打印 sys.path 我的目录就在那里。

然后我打开一个新命令,它不再存在了。

但不知何故,Python 无法导入我保存在该目录中的模块。

我究竟做错了什么?

我读过 .profile 或 .bash_profile 就可以了。

我必须添加:

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

让它发挥作用?

4

6 回答 6

87

修改为sys.path仅适用于该 Python 解释器的生命周期。如果要永久执行此操作,则需要修改PYTHONPATH环境变量:

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

请注意,PATH这是可执行文件的系统路径,它是完全独立的。

**您可以将以上内容写入其中~/.bash_profile并使用它的来源source ~/.bash_profile

于 2010-08-02T12:28:01.447 回答
10

不知道为什么 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', ...  

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

于 2012-11-13T10:44:32.657 回答
5

在 MAC OS 上,您可以使用命令which pythonwhich python3. (也适用于 Linux)

它应该给出如下内容:

对于蟒蛇

/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在被要求保存时按保存

按“回车”返回终端窗口

在终端中使用以下命令获取它,运行

source ~/.bash_profile

现在应该更新python3的路径!

于 2021-10-26T02:38:48.993 回答
2

Mathew 的答案适用于终端 python shell,但在我的情况下它不适用于 IDLE shell,因为在我用 Python2.7.7 替换它们之前存在许多版本的 python。我如何解决 IDLE 的问题。

  1. 在终端,cd /Applications/Python\ 2.7/IDLE.app/Contents/Resources/
  2. 然后sudo nano idlemain.py,如果需要,请输入密码。
  3. os.chdir(os.path.expanduser('~/Documents'))这一行之后,我添加了sys.path.append("/Users/admin/Downloads....") 注意:将引号的内容替换为要添加 python 模块的目录
  4. 保存更改,ctrl+x 并输入 现在打开 idle 并尝试导入 python 模块,对我来说没有错误!!!
于 2014-06-26T08:53:30.253 回答
2

设置 $PYTHONPATH 环境变量似乎不会影响 Mac 上 Spyder IDE 的 iPython 终端。但是,Spyder 的应用程序菜单包含一个“PYTHONPATH 管理器”。在这里添加我的路径解决了我的问题。“PYTHONPATH 管理器”在应用程序重新启动时也是持久的。

这是特定于 Mac 的,因为在我的 Windows PC 上设置 PYTHONPATH 环境变量可以在不使用 Spyder 中的 PYTHONPATH 管理器的情况下提供预期的行为(找到模块)。

于 2016-06-10T13:22:56.137 回答
2

在 MacOS Big Surf 上,添加“导出”的文件是$HOME/.zprofile

因此,这应该适用于将 PYTHONPATH 添加到您的 Mac Big Surf 环境变量:

export PYTHONPATH=$HOME/my_folder

如果文件不存在,只需在 中创建它$HOME,通常/Users/my_user_name

文件名的这种变化是因为 MacOS Big Surf 的默认 shell 是zsh而不是bash

于 2021-05-25T16:51:29.363 回答