IDLE 和 Python 在 Mac OS X 中具有不同的路径

2024-01-10

我运行的是 Mac OS X 10.5.8。我已经从网站安装了 Python 2.6。它在我的应用程序目录中。我已经编辑了我的 .bash_profile 以具有:

# Setting PATH for MacPython 2.6
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.6/bin:${PATH}"
export PATH
export PATH=/usr/local/mysql/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
export PYTHONPATH=/Users/blwatson/pythonpath:/Users/blwatson/pythonpath/django/bin:$PYTHONPATH

当我从命令提示符运行 python 时,我可以得到以下内容:

Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39) 
[GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(1, 0, 4, 'alpha', 0)

检查路径

>>> import sys
>>> sys.path
['', '/Users/blwatson/pythonpath', '/Users/blwatson/pythonpath/django/bin', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/wx-2.8-mac-unicode']
>>> 

当我处于 IDLE 状态时,我会得到不同的体验。

Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39) 
[GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin
Type "copyright", "credits" or "license()" for more information.

    ****************************************************************
    Personal firewall software may warn about the connection IDLE
    makes to its subprocess using this computer's internal loopback
    interface.  This connection is not visible on any external
    interface and no data is sent to or received from the Internet.
    ****************************************************************

IDLE 2.6.2      
>>> import django

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import django
ImportError: No module named django
>>> import sys
>>> print sys.path
['/Users/blwatson/Documents', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL', '/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/wx-2.8-mac-unicode']

我不知道发生了什么事。我从一台笔记本电脑转移到另一台笔记本电脑并完成了整个 TimeCapsule 的工作,所以我知道因此存在一些冲突。 IDLE从哪里获取PATH?为什么我无法导入 Django?


与所有 OS X 应用程序包一样,如果您启动IDLE.app通过双击,不涉及 shell,因此 .bash_profile或其他 shell 初始化文件不被调用。有一种方法可以通过使用特殊的方法来设置用户会话环境变量属性列表文件 http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/EnvironmentVars.html (~/.MacOSX/environment.plist)但这确实有点混乱,不推荐。

幸运的是,有一个更简单的解决方案:在 OS X 上,还可以调用IDLE从终端窗口中的 shell 命令行。这样,它将如您所期望的那样从该 shell 继承导出的环境变量。所以像这样:

$ export PYTHONPATH= ...
$ /usr/local/bin/idle2.6

2.6.2 之前的 OS X 上的 IDLE 存在各种不一致和问题,具体取决于它的调用方式,因此我建议在 OS X 上不要使用比 python.org 2.6.2 或 3.1 版本更旧的版本。

编辑:我从open(1)手册页显示,自 10.4 起,应用程序通过以下方式启动open还继承环境变量,以便也可以从命令行工作。如果您想避免打开终端窗口,可以轻松使用 AppleScript 或 Automator(甚至使用 Python 和 py2app!)创建一个简单的启动器应用程序。在这种情况下,请使用打开命令命令,以便启动器应用程序不会闲置。例如,在自动机 http://apple.com/automator, 选择Run Shell Script操作并添加:

export PYTHONPATH= ...
open -a "/Applications/Python 2.6/IDLE.app"

另存为文件格式Application(10.5 中)并且您应该有一种可点击的方式来启动定制的 IDLE。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IDLE 和 Python 在 Mac OS X 中具有不同的路径 的相关文章

随机推荐

  • Kotlin:对以函数作为参数的函数进行单元测试

    我有一个从存储库中检索项目列表的函数 我没有使用常规回调 而是传入一个函数并使用结果调用它 但是如何对这种功能进行单元测试呢 是否有某种方法可以验证传入的函数是否正在被调用 或者我应该重构并使用常规回调并使用模拟回调接口对其进行测试 My
  • 如何从 HTML 中获取所有 标记之间的数组中的文本?

    我想在所有之间获取数组中的文本 span span 来自 HTML 的标签 我尝试过使用此代码 但它只返回一次 preg match span lt span gt is row tbl highlighted icon content m
  • 用于分配分片索引的 Zookeeper

    我在网上看到过一些关于使用 Zookeeper 在服务器上线时为其分配分片编号的帖子 假设您正在跨集群对数据进行分片 但我一生都找不到如何执行此操作的 Java 代码示例 有人已经可以使用这个了吗 谢谢 跨集群分片数据有很多细节 例如复制和
  • Numpy 数组:序列太大

    我有一个大小的数组11称为 波长 和更大的尺寸数组n称为 MN 而 模型 是一个m by n array 我正在这样做 for i in xrange 10 len wavelength 2 y np empty model MN i fl
  • 如何使用“chosen.js”插件在 MVC 3 中实现多重选择

    如何实施chosen http harvesthq github io chosen MVC 3 的插件 对于这种类型的输出 这是我的代码 如何使 selected js 与 javascript MVC 一起工作 这是我的下拉列表的代码
  • 如何覆盖android中的操作栏后退按钮?

    我想自定义操作栏中的活动后退按钮 而不是硬键后退按钮 我已经覆盖了onBackPressed 方法 它适用于我的模拟器后退按钮 但不适用于操作栏后退按钮 我希望它能通过操作栏发生 我怎样才能做到这一点 这是我的代码 Override pub
  • ServiceWorker更新后如何刷新页面?

    我查阅了很多有关 Service Workers 的资源 更新您的 ServiceWorker https jakearchibald com 2014 using serviceworker today updating your ser
  • 如何测试 URL 字符串是绝对字符串还是相对字符串?

    如果 URL 是 Javascript 或 jQuery 中的相对路径或绝对路径 如何测试它 我想根据传入的 URL 是本地路径还是外部路径进行相应处理 if urlString starts with http or https do t
  • 如何使用 bash 运行 `mkdir -m -p`?

    我想要mkdir as site1 www site1 log site2 www site2 log site3 www site3 log 这些文件夹的权限是700 然后我在 Bash shell 中尝试了脚本 如下所示 sites a
  • 为什么我无法注销 django 用户身份验证?

    我正在使用 django contrib auth 用户管理系统 因此 我将注册 插入到用户表 模型中 并从 django contrib auth views login 进行登录 以便我可以登录 但是 我无法使用 django cont
  • 类方法上的 functools.partial

    我试图使用另一个更通用的类方法定义一些类方法 如下所示 class RGB object def init self red blue green super RGB self init self red red self blue blu
  • 我什么时候应该为 Map 键创建一个类?

    我正在使用 Java 6 假设我有一个类 我想将其实例保存到地图中 后来我想仅使用 关键字段 来检索实例 为了简洁起见 我将忽略字段修饰符 getter 和 setter class A String field1 String field
  • 如何在 Url.Content 中包含 MVC Razor 变量?

    使用 MVC 3 Razor 如何在调用中指定变量 Url Content Example var myVar Request QueryString foo a href Url Content a bar myvar gt click
  • 程序在其他 Windows 机器上无法正常运行

    我的应用程序遇到问题 我试图获取它运行的系统的所有网络配置 最终目标是找到优先级最高的MAC地址 当我使用 QtCreator 运行代码时 代码运行正常并且可以工作 当我创建包含 dll 文件和 exe 文件的文件夹时 代码也运行正常 但问
  • 无法使用 API Gateway 运行 AWS Lambda 函数

    我创建了一个简单的 python 3 7 lambda 函数 import json import boto3 s3 boto3 client s3 def lambda handler event context bucket nubi
  • 如何按 R 数据表中的特定列分组后选择行的子集[重复]

    这个问题在这里已经有答案了 我想在按 R 数据表中的特定列分组后根据条件选择行的子集 以Mtcars数据为例 dt mtcars lt as data table mtcars dt mtcars N by hp hp N 1 110 3
  • HTML Canvas 上的发光效果,可能使用卷积核/矩阵

    我正在将 PNG 图像绘制到 HTML 画布上 并且实现了一个过滤器系统 以允许在将图像数据传输到画布之前对图像数据执行卷积过滤器 有谁知道如何使用卷积核 矩阵创建发光效果 我不确定术语是什么 但我正在谈论这些 http www html5
  • IEnumerable 的扩展方法?

    我有很多不同的枚举 例如 public enum MyEnum Description Army of One one Description Dynamic Duo two Description Three Amigo s three
  • 使用 .htaccess 重定向移动设备 // 排除 IPAD

    我在 htaccess 中使用此代码来重定向移动设备 目前iPad也是一种移动设备 我该如何更改此设置 以便 ipad 不会重定向到移动版本 谢谢你 RewriteEngine on RewriteBase Check if this is
  • IDLE 和 Python 在 Mac OS X 中具有不同的路径

    我运行的是 Mac OS X 10 5 8 我已经从网站安装了 Python 2 6 它在我的应用程序目录中 我已经编辑了我的 bash profile 以具有 Setting PATH for MacPython 2 6 The orgi