4

我已经尝试解决这个问题超过 2 天,筛选互联网和教程,但我还没有解决我的问题。我是一个真正的新手,还不知道我在做什么..

我使用的软件:Mac OS X 10.6 Python v3.2.2 交互式解释器(IDLE)

问题:IDLE 的默认目录是 /Users/ME/Documents/。扩展名为 .py 的文件只能在位于此目录中时打开。但是,我创建了一个文件夹,我想在其中保存与该软件有关的所有 .py 文件等。目前,IDLE 无法从我选择的目录中加载 .py 文件。

我首先做的是添加到 IDLE:import sys. sys.path.append('Users/Mydir/') sys.path

但是,在 2010 年已经存在的线程中,我读到 sys.path 仅用于解释器,如果我要更改它,我需要修改 PYTHONPATH 环境变量:

PYTHONPATH="/Me/Documents/mydir:$PYTHONPATH" 导出 PYTHONPATH

但是,我很困惑如何使用它并且无法找到以下问题的答案:1)当我安装程序时,我的计算机上已经存在 PYTHONPATH(.py?)?如果是,它在哪里?我在任何地方都找不到它。如果否,我需要创建一个。但是,IDLE 可以从非默认目录加载文件的内容应该在哪里以及应该是什么?它应该只包含粗体字吗?

我希望我把我的问题说清楚了。

干杯

4

2 回答 2

7

我不完全清楚你的意思是什么load。这可能意味着IDLE 编辑器中OpenClose文件。或者它可能意味着能够使用 Pythonimport语句从其他文件加载现有的 Python 模块。我假设后者,load你的意思是import

在 Mac OS X 上启动 IDLE 的一般方法有两种。一种是从终端会话的命令行;另一种是从终端会话的命令行启动。如果您使用 python.org 安装程序安装了 Python 3.2,则默认情况下键入/usr/local/bin/idle3.2将起作用。另一种方法是从 启动IDLE.app/Applications/Python 3.2即双击其图标。因为您说文件的默认目录是您的Documents文件夹,所以我假设您使用的是第二种方法,因为IDLE.app设置Documents为其当前工作目录,该目录成为 *Open*s 和 *Save*s 的默认目录并自动添加为Python 的第一个目录,用于在ing时搜索模块sys.path的目录列表。Pythonimport

如果您想将其他目录添加到sys.path,正如您所指出的,您可以使用PYTHONPATH环境变量来执行此操作。执行此操作的标准方法是将export PYTHONPATH=...定义添加到 shell 启动脚本,例如.bash_profile. 但是,如果您使用IDLE.app,则不涉及任何 shell,因此 in 中的命令.bash_profile无效。

虽然有一些方法可以修改 OS X GUI 应用程序的环境变量,但在这种情况下,更简单的解决方案是使用另一种方法来调用 IDLE,从 shell 会话的命令行,使用/usr/local/bin/idle3.2或者,如果你已经运行文件夹中的Update Shell Profile命令/Applications/Python 3.2(并打开一个新的终端会话),只需idle3. 然后,您设置的 PYTHONPATH 环境变量将由该 IDLE 继承。

顺便说一句,除了修改 IDLE 中的代码之外,没有直接的方法可以修改IDLE.appfrom的初始当前工作目录。Documents如果从命令行启动 IDLE,它将继承 shell 的当前工作目录。

[更新] 但是,与其在定义中胡闹PYTHONPATH,这里还有另一种更简单,可能更好的方法,它应该适用于IDLE.appor 或 command line idle。它利用Python 路径配置 ( .pth) 文件用户站点包目录。假设您在 Mac OS X 上使用 3.2 的标准 Python 框架构建(例如来自 python.org 安装程序),请为要永久添加到的目录创建一个路径文件sys.path。在终端会话中:

mkdir -p ~/Library/Python/3.2/lib/python/site-packages
cd ~/Library/Python/3.2/lib/python/site-packages
cat >my_paths.pth <<EOF
/Users/YOUR_USER_NAME/path/to/your_additional_python_directory_1
/Users/YOUR_USER_NAME/path/to/your_additional_python_directory_2
EOF

现在,每当您以您的用户名运行 Python 3.2 或 IDLE 时,您添加到.pth文件中的目录将自动添加到sys.path.

顺便说一句,早于 3.2 或 2.7 的 Python 版本的用户站点包目录的确切路径位置可能略有不同。此外,在其他 Unix-y 系统上,用户站点包目录的默认位置是~/.local/lib/python3.2/site-packages.

于 2011-12-08T19:34:38.073 回答
0

PYTHONPATH 是一个环境变量(参见此处此处)。我没有 Mac,但从我链接到你的线程中会输入类似

launchctl setenv PYTHONPATH=/Me/Documents/mydir:$PYTHONPATH

在命令行上允许您从/Me/Documents/mydir. 或者,将此行放在.bashrc主目录 ( ~) 中的一个文件中,每次打开终端时都会设置此路径。有关其他文件的简短介绍,请参见此处。希望有帮助。.bashrc.bash*

编辑另见这个问题。

于 2011-12-08T14:57:06.207 回答