我已经尝试解决这个问题超过 2 天,筛选互联网和教程,但我没有解决我的问题。我是一个真正的新手,还不知道我在做什么..
我使用的软件:苹果操作系统 X 10.6Python v3.2.2交互式解释器(IDLE)
问题:IDLE 的默认目录是/Users/ME/Documents/。扩展名为 .py 的文件只有位于此目录中时才能打开。但是,我创建了一个文件夹,我想在其中保存与该软件有关的所有 .py 文件等。目前,IDLE 无法从我选择的目录中加载 .py 文件。
我首先做的是添加到 IDLE:导入系统。sys.path.append('Users/Mydir/')系统路径
但是,在 2010 年的一个已经存在的线程中,我读到 sys.path 仅供解释器使用,如果我要更改它,我需要修改 PYTHONPATH 环境变量:
PYTHONPATH="/Me/Documents/mydir:$PYTHONPATH"导出 PYTHONPATH
但是,我对如何使用它感到困惑,无法找到以下问题的答案:1) 当我安装程序时,PYTHONPATH (.py?) 已经存在于我的计算机上?如果是,它在哪里?我无法在任何地方找到它。如果不是,我需要创建一个。但是应该将内容放在哪里以及应该是什么,以便 IDLE 可以从非默认目录加载文件?它应该只包含粗体字吗?
我希望我把问题说清楚了。
干杯
最佳答案
我不是很清楚load
是什么意思。这可能意味着在空闲编辑器中打开
和关闭
文件。或者它可能意味着能够使用 Python import
语句从其他文件加载现有的 Python 模块。我假设是后者,即 load
是指 import
。
在 Mac OS X 上有两种启动 IDLE 的一般方法。一种是从终端 session 的命令行;另一种是从终端 session 的命令行。如果您使用 python.org 安装程序安装了 Python 3.2,默认情况下键入 /usr/local/bin/idle3.2
即可。另一种方法是从 /Applications/Python 3.2
启动 IDLE.app
,即双击它的图标。因为您说文件的默认目录是您的 Documents
文件夹,所以我假设您使用的是第二种方法,因为 IDLE.app
设置了 Documents
作为其当前工作目录,它成为 *Open*s 和 *Save*s 的默认目录,并自动添加为 Python 的 sys.path
的第一个目录, 的目录列表Python
在 import
ing 时用于搜索模块。
如果您想将其他目录添加到 sys.path
,正如您所指出的,您可以使用 PYTHONPATH
环境变量来完成此操作。执行此操作的标准方法是将 export PYTHONPATH=...
定义添加到 shell 启动脚本,如 .bash_profile
。但是,如果您使用 IDLE.app
,则不涉及 shell,因此 .bash_profile
中的命令无效。
虽然有一些方法可以修改 OS X GUI 应用程序的环境变量,但在这种情况下,更简单的解决方案是使用其他方法从 shell session 的命令行调用 IDLE,使用 /usr/local/bin/idle3.2
或者,如果您在 /Applications/Python 3.2
文件夹中运行了 Update Shell Profile
命令(并打开一个新的终端 session ),只是 idle3
。然后,您设置的 PYTHONPATH 环境变量将被该 IDLE 继承。
顺便说一句,除了在 IDLE 中修改代码外,没有直接的方法可以从 Documents
修改 IDLE.app
的初始当前工作目录。如果你从一个命令启动 IDLE行,它继承了 shell 的当前工作目录。
[UPDATE] 但是,与其胡乱定义 PYTHONPATH
,这里有另一种更简单、可能更好的方法,它应该与 IDLE.app
或命令行空闲
。它利用了 Python path configuration (.pth
) files和 user site-package directories .假设您在 Mac OS X 上使用 3.2 的标准 Python 框架构建(例如来自 python.org 安装程序),为要永久添加到 sys.path
的目录创建一个路径文件。在终端 session 中:
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 版本,用户站点包目录的确切路径位置可能略有不同。此外,在其他 Unix-y 系统上,用户站点包目录的默认位置是 ~/.local/lib/python3.2/site-packages
。
关于python - 使用 Python IDLE 时如何从备用位置导入模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8432820/
调用 Maven 构建来指定替代文件来代替标准 pom.xml 文件名时是否有参数? 基本上,我需要使用各种配置来运行我的 Maven 构建的测试目标。现在我必须使用外部脚本来使用此配置更新标准 po
基本上我喜欢 PHP 和 SQL 的开发方面。目前我正在处理一个可能需要 MYSQL 复制功能的项目。下面提到的是我的一些要求,只是想知道是否有人可以提供他们的专家建议和提示,以防根据我的需要这是正确
我目前正在做一个教科书中的项目,我遇到了一个 while 循环的模糊问题。课本上的代码如下; while(getImage().getWidth(applet) <= 0); double x = a
如何全局更改Maven的.m2目录的位置? Maven使用${user.home}/.m2进行设置,存储库缓存等。 我知道我可以: 指向存储库缓存的其他目录(通过更改全局配置文件中的localRepo
我正在开发以下代码,一个备用 while 循环: _while = (cond, act) => cond && act() & _while(cond, act) 在这种情况下,act() 旨在每次
到目前为止,我读过的每个教程都说包名应该与您的域相反。但是,如果我没有域并想在市场上发布应用程序怎么办?我可以使用什么备用包命名约定? 最佳答案 随心所欲;这是任意的。 包命名就是为了防止冲突和创建功
您好,我们有一个包含大量 bean、JSP 等的项目。迫切需要在我们的环境中执行自动化测试(我们使用 Maven)。现在,我们可以轻松地为数据库项目层编写测试,为我们实现的各种安全实用程序编写测试。但
这更像是一个 CSS 问题,但我会在此处添加它,因为任何下划线开发人员都可能遇到过它。我有一个索引页面布局: ... ... ... ... 我想用替代文章的类 xyz 定位 div
我正在创建一个 DOM 元素,如下所示; var imgEle = document.createElement('img'); imgEle.src = imgURL;
在应用程序中,当创建特殊类型的对象时,我需要为它们中的每一个生成一个唯一标识。这些对象是通过工厂创建的,并且很有可能在“批量”操作中创建。我意识到框架中的“随机”毕竟不是那么“随机”,所以我尝试按如下
我正在寻找每日备份 sqlite 数据库的正确解决方案。数据库大约 5GB,有规律地增长,每秒接收新数据,并且处于 WAL 模式。该服务是 24/7 全天候服务,因此在备份期间无法停止任何操作。将数据
我正在设置一个多节点 hadoop 集群,并有一个节点之间无密码 SSH 的共享 key 。我将文件命名为 ~/.ssh/hadoop_rsa 并且可以使用 ssh -i ~/.ssh/hadoop_
我的结构如下: blah stuff 它会在整个动态页面中重复几次。我想用两种颜色交替 div 类“post”的背景颜色,但 CSS 的第 nth-child 伪类似乎只适用于直接顺序
例如 Jython 的版本是 2.5.1,这是否意味着它在 2.5.1 版本时与 cpython 语法并行保真? 最佳答案 通常是的,但从技术上讲,没有什么可以阻止替代实现选择他们想要的任何版本号。
我知道 h1 标签对 SEO 很重要,所以我所有的标题都是 H1(太棒了!) 现在,我需要在某些页面上有一个稍微不同的标题(作为文本的第一行)。 通常,我只是将 h1 复制为 h2 并交替使用。 问题
可以为 Perforce 推荐一个类似 P4Win 的替代方案,希望它支持搁置并且可能是开源的?不需要跨平台,只要 Windows 就可以了。 我这么问是因为我不喜欢新的 P4V 界面,而且我发现 P
大家好,提前寻求帮助:我正在尝试将第二个标题添加到自定义临时页面,并在该备用标题中添加一个不同于 style.css 的备用 css 文件。 我像这样从 cat 模板页面调用了自定义 header
我在这里遇到了一些麻烦。我想在鼠标悬停在 div 之后显示图像。 HTML: CSS: #testmouseover { left: -9px; top: -9px;
这个问题在这里已经有了答案: How do I switch my CSS stylesheet using jQuery? (5 个答案) 关闭 9 年前。
有人知道是否有一些用于 Direct X 的替代 API,我的意思是只是 GUI 库!没有像我们在 DXUT 中那样重新实现 Direct X。 最佳答案 对于 Windows 10 上的 Windo
我是一名优秀的程序员,十分优秀!