我一直试图解决这个问题超过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可以从非默认目录加载文件?它应该只包含粗体字吗?
我希望我的问题清楚。
干杯
答案 0 :(得分:7)
load
我的意思并不完全清楚。这可能意味着IDLE编辑器中的Open
和Close
个文件。或者它可能意味着能够使用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.app
将Documents
设置为其当前工作目录,这将成为默认目录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
) files和user 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(请参阅here和here)。我没有Mac,但是从我链接到的线程中你会输入类似
的内容launchctl setenv PYTHONPATH=/Me/Documents/mydir:$PYTHONPATH
命令行上的允许您从/Me/Documents/mydir
运行Python脚本。或者,将此行放在主目录(.bashrc
)中名为~
的文件中,每次打开终端时都会设置此路径。有关.bashrc
和其他.bash*
文件的简短介绍,请参阅here。希望有所帮助。
编辑另请参阅this问题。