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

时间:2011-12-08 14:51:02

标签: python macos python-idle pythonpath

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

我使用的软件: Mac OS X 10.6 Python v3.2.2 互动口译员(IDLE)

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

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

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

PYTHONPATH = “/ ME /文档/ MYDIR:$ PYTHONPATH” 出口PYTHONPATH

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

我希望我的问题清楚。

干杯

2 个答案:

答案 0 :(得分:7)

load我的意思并不完全清楚。这可能意味着IDLE编辑器中的OpenClose个文件。或者它可能意味着能够使用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,即双击其图标。因为您说文件的默认目录是您的Documents文件夹,我假设您使用的是第二种方法,因为IDLE.appDocuments设置为其当前工作目录,这将成为默认目录for * Open * s和* Save * s并自动添加为Python的sys.path上的第一个目录,Python用于在import时搜索模块的目录列表。< / p>

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

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

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

[更新]但是,不是愚弄定义Documents,而是另一个更简单,可能更好的方法,应该与PYTHONPATH或命令行IDLE.app一起使用。它利用了Python path configuration (.pth) filesuser site-package directories。假设您在Mac OS X上使用3.2的标准Python框架版本(例如来自python.org安装程序),请为要永久添加到idle的目录创建路径文件。在终端会话中:

sys.path

现在,只要您在用户名下运行Python 3.2或IDLE,您添加到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 文件的目录就会自动添加到.pth

BTW,早于3.2或2.7的Python版本的用户site-packages目录的确切路径位置可能略有不同。此外,在其他Unix-y系统上,用户site-package目录的默认位置是sys.path

答案 1 :(得分:0)

PYTHONPATH是environment variable(请参阅herehere)。我没有Mac,但是从我链接到的线程中你会输入类似

的内容
launchctl setenv PYTHONPATH=/Me/Documents/mydir:$PYTHONPATH
命令行上的

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

编辑另请参阅this问题。