【问题标题】:Python on Mac, setting up the path for an installed module so Python can useMac 上的 Python,设置已安装模块的路径,以便 Python 可以使用
【发布时间】:2012-12-12 11:44:10
【问题描述】:

我终于在我的站点包目录中安装了一个模块 dislin(我认为)。这是安装目录:

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/dislin

尽管有看似明确的指令可用,但我无法弄清楚如何让 Python 看到这个模块。我的问题是我不太了解 UNIX 中的路径或环境(我猜)。我将此目录添加到 .bash_profile 文件中的几个位置,并且我还尝试在终端中使用:export PYTHONPATH=$DISLIN/python(以及几个变体,例如包括完整路径)。没有运气。当我尝试导入 Python 时,它返回“No module named deslin”。

谁能给我明确的指示,或者清楚地解释如何设置它。

顺便说一句,这里是站点包中 dislin 目录的内容(以及 link to the README 内):

DISLIN          fonts           libdiscpp.10.dylib  libdislin_d.dylib
README          g95         libdiscpp.dylib     license.txt
bin         gcldir          libdisjava.dylib    man
device.dat      gf          libdislin.10.dylib  map
discpp.h        hlp         libdislin.9.dylib   perl
dislin.h        ifc         libdislin.dylib     python
dislin.log      java            libdislin_d.10.dylib    real64
examples        lib         libdislin_d.9.dylib

【问题讨论】:

  • 这是我的 .bash_profile 现在的样子顺便说一句:# Setting PATH for Python 2.7 # 原始版本保存在 .bash_profile.pysave PATH="/Library/Frameworks/Python.framework/Versions/ 2.7/bin:${PATH}" 导出 PATH PYTHONPATH="${PYTHONPATH}:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scikits.audiolab-0.11.0- py2.7-macosx-10.6-intel.egg:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/deslin
  • 这应该已经在你的路径上——如果你使用的是正确的 python。您是否安装了 MacPorts 或 Fink 之类的东西?这些最终会安装自己的python,这将覆盖并隐藏Apple提供的python。一种判断方法是输出是什么: python -c "import sys;print (sys.path);"
  • 你也可以试试which python
  • @DavidK.Hess 谢谢。很确定我正在使用指示的 python,因为我正在将许多其他模块安装到同一个目录,并且它们工作正常。
  • @AlexL 想出了:/Library/Frameworks/Python.framework/Versions/2.7/bin/python

标签: python macos module path environment-variables


【解决方案1】:

关于如何让 dislin 在 Mac OS X 上使用 Lion 工作的分步说明

  • 下载dislin

  • 解压解压

    tar xvzf dislin-10.2.darwin.intel.64.tar.gz
    

这将创建一个新文件夹“dislin-10.2”...我们将其称为 DISLIN 下载目录

  • 创建一个永久目录 home,一旦我们安装了 dislin,它就会驻留在其中

    mkdir /Users/<your username>/dislin
    
  • 设置您的环境变量(如果不存在 .bash_profile,则创建一个)

    vim /Users/<your username>/.bash_profile
    
  • 把这个粘贴进去

    export DISLIN=/Users/<your username>/dislin
    PATH=${PATH}:${DISLIN}/bin
    
    DYLD_LIBRARY_PATH=$DISLIN:$DYLD_LIBRARY_PATH
    export DYLD_LIBRARY_PATH
    
  • 获取您的个人资料

    source ~/.bash_profile
    
  • 运行安装程序(从 DISLIN 下载目录中)

    ./INSTALL
    
  • 运行python(或ipython)看看能不能导入dislin

此时我在尝试加载 dislin 时在 python 中遇到了一个主题错误,因此我必须下载并安装 dmg (http://www.ist-inc.com/downloads/motif_download.html)。显然这只发生在 Lion+ 上

在安装主题后,我再次加载了 ipython,并且能够顺利导入 dislin。

【讨论】:

  • 感谢您抽出宝贵时间提供帮助。我相信我现在更接近理解了。按照说明操作后仍然无法正常工作(Python 不会导入 dislin)。我可能在某些地方留下了一些错字;)。
  • 这是我的新 .bash_profile 顺便说一句:# Setting PATH for Python 2.7 # 原始版本保存在 .bash_profile.pysave PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin :${PATH}" 导出路径 PYTHONPATH="${PYTHONPATH}:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scikits.audiolab-0.11.0-py2.7 -macosx-10.6-intel.egg" export DISLIN=/Users/wolf/dislin PATH=${PATH}:${DISLIN}/bin DYLD_LIBRARY_PATH=$DISLIN:$DYLD_LIBRARY_PATH export DYLD_LIBRARY_PATH
【解决方案2】:

上面列出的文件路径中带有“e”的“deslin”只是一个错字吗? (/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/deslin)。

我认为这个包名为 dislin,带有“i”,这意味着在 python 中你可以:

import deslin

但你不能:

import dislin

除非您将该目录的名称从 deslin 更改为 dislin。你可以在你的 Mac 上这样做:

sudo mv /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/deslin /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/dislin

【讨论】:

  • 谢谢。显然问题的很大一部分。不过还没有工作。
【解决方案3】:

仔细查看目录列表,您似乎将下载内容直接提取到站点包中?如果是这样,这就是您的问题的原因。

删除站点包/dislin。将 dislin 包解压缩到一个临时位置(例如您的桌面),进入该目录并运行安装命令。这应该会为您正确地在站点包中创建目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 2017-09-07
    相关资源
    最近更新 更多