如何在使用Python IDLE时从备用位置导入模块



我已经尝试了2天以上,筛选互联网和教程,但我还没有解决我的问题。我是个新手,还不知道自己在做什么。

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

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

我首先做的是添加到IDLE:导入系统。sys.path.append(用户/Mydir/)sys.path

然而,在一个已经存在的线程从2010年我读sys。path仅用于解释器,如果我要改变这一点,我需要修改PYTHONPATH环境变量:

PYTHONPATH = "/我/文件/mydir: $ PYTHONPATH环境"出口到PYTHONPATH

然而,我很困惑如何使用这个,找不到我以下问题的答案:1)当我安装程序时,我的计算机上已经存在PYTHONPATH (.py?)如果是,它在哪里?我到处都找不到它。如果没有,我需要创建一个。但是,要使IDLE能够从非默认目录加载文件,内容应该放在哪里?它应该只包含粗体的单词吗?

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

欢呼

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

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

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

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

BTW,从Documents修改IDLE.app的初始当前工作目录,除了修改IDLE中的代码外,没有直接的方法。如果从命令启动IDLE行,它继承shell的当前工作目录。

[UPDATE]但是,与其瞎搞定义PYTHONPATH,这里有另一种更简单,可能更好的方法,应该与IDLE.app或命令行idle一起工作。它利用了Python路径配置(.pth)文件和用户站点包目录。假设您在Mac OS X上使用的是标准的Python框架3.2版本(例如来自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的user site-packages目录的确切路径位置可能略有不同。另外,在其他Unix-y系统上,用户站点包目录的默认位置是~/.local/lib/python3.2/site-packages

PYTHONPATH是一个环境变量(参见这里和这里)。我没有Mac,但是从我链接到你的线程中输入像

这样的东西
launchctl setenv PYTHONPATH=/Me/Documents/mydir:$PYTHONPATH

命令行,允许您从/Me/Documents/mydir运行Python脚本。或者,将这一行放在主目录(~)中名为.bashrc的文件中,每次打开终端时都会设置此路径。请参阅此处获取.bashrc和其他.bash*文件的简短介绍。希望对你有帮助。

编辑参见此问题

最新更新