我已经尝试了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编辑器中的Open
和Close
文件。或者它可能意味着能够使用Python import
语句从其他文件加载现有的Python模块。我假设是后者,你所说的load
指的是import
。
/usr/local/bin/idle3.2
就可以了。另一种方法是从/Applications/Python 3.2
启动IDLE.app
,即双击其图标。因为你说文件的默认目录是你的Documents
文件夹,我假设你正在使用第二种方法,因为IDLE.app
将Documents
设置为其当前工作目录,它成为*Open*s和*Save*s的默认目录,并自动添加为Python的sys.path
上的第一个目录,Python
在import
运行时用于搜索模块的目录列表。
如果您想将其他目录添加到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*
文件的简短介绍。希望对你有帮助。
编辑参见此问题