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

Fly*_*tch 4 python macos pythonpath python-idle

我一直试图解决这个问题超过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可以从非默认目录加载文件?它应该只包含粗体字吗?

我希望我能清楚地解决问题.

干杯

Ned*_*ily 7

对我来说,你的意思并不完全清楚load.这可能意味着OpenClose在IDLE编辑文件.或者它可能意味着能够使用Python import语句从其他文件加载现有的Python模块.我会假设后者,load你的意思是import.

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

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

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

BTW,还有修改的初始当前工作目录没有直接的方法IDLE.appDocuments其他比IDLE修改代码.如果从命令行启动IDLE,它将继承shell的当前工作目录.

[更新]但不是在定义时PYTHONPATH,这是另一个更简单,可能更好的方法,它应该适用于任何一个IDLE.app或命令行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
Run Code Online (Sandbox Code Playgroud)

现在,只要您在用户名下运行Python 3.2或IDLE,.pth就会自动添加添加到文件中的目录sys.path.

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