【问题标题】:Why can't I import pygtk?为什么我不能导入 pygtk?
【发布时间】:2010-07-16 03:18:32
【问题描述】:

我按照this post. 中的说明安装成功。但是,当我运行 python 时,我无法导入 pygtk。具体来说,它是这样说的:

>>> import pygtk \n “ImportError: No module named pygtk”

我猜我必须执行一些命令,例如 make 之类的,但我找不到任何地方说明要做什么。请帮忙,我很沮丧。

编辑:我应该提到我在 Mac OS X 上

【问题讨论】:

标签: python pygtk macports


【解决方案1】:

你是如何运行 python 的?它是 OSX (/usr/bin/python) 还是 MacPorts 版本 (/opt/local/bin/python) 附带的那个?

您链接到的页面有使用 MacPorts 安装 pygtk 的说明。所以它应该与python的安装一起运行。有关如何配置 PATH 变量以使用适当的 python 安装的帮助,请参阅MacPorts wiki

编辑:尝试显式运行 macports python:“/opt/local/bin/python”,然后导入 pygtk。此外,检查文件系统上的 macports python site-packages 目录下是否存在 pygtk(通常类似于 /opt/local/lib/python2.5/site-packages)。

【讨论】:

  • 感谢您的回复,但似乎没有用。我做的命令是 export PATH=/opt/local/bin:/opt/local/sbin:$PATH 如果我做错了请告诉我。
  • 更新了我的答案。希望这会有所帮助,但不确定是否会有所帮助,但无论如何它可能会揭示一些新信息。
  • 感谢您的帮助。该位置似乎不存在 pygtk。
  • 这很奇怪。也许尝试再次安装 pygtk(sudo ports pygtk..),看看它是否抱怨。否则,它可能会将其安装在不同的位置——也许更熟悉 macports 的人可以提供帮助。 (我在您的问题中添加了 macports 标签。)
  • 谢谢,另外一件奇怪的事情是,现在我无法毫无困难地导入我之前使用过的其他模块,比如 mechanize 和 BeautifulSoup
【解决方案2】:

如果你从虚拟环境运行 git mergetool,那么 python 解释器找不到 pygtk。修复 virtualenv 的 python 路径或先停用 virtualenv。

【讨论】:

    【解决方案3】:

    以下对我有用 - 假设您已安装 HomeBrew

    我尝试安装 meld 并遇到同样的错误 - 这已解决

    brew install python
    

    【讨论】:

      【解决方案4】:

      您可能已经单独安装了 pip(而不是通过 macports)。因此,您的软件包被安装在 macports-installed python 无法读取的位置。例如,在我的 OS X 中,以下代码有效:

      [user]$ /usr/bin/python
      >>> import pip
      >>> for package in pip.get_installed_distributions():
      >>>     print package, package.location
      

      但是如果我启动 /opt/local/bin/python(这是我的默认 python)并说“import pip”,那么它会给出一个 importerror 说明没有名为 pip 的模块。

      可能有两件事对你有用:

      1) 使用 macports 安装 pip,并将其设置为默认值(port install pip)。用这个 pip 再次安装 pygtk

      2) 使用 /usr/bin/python 显式启动 python,并在那里编写代码。

      可能有一种方法可以让 /opt python(来自 macports)读取由非 macports pip 安装的模块,但我不知道。

      【讨论】:

        【解决方案5】:
        a> pip install pygtk - (windows only), 
        b> brew install python
        

        不知道为什么,第一个选项是说它只适用于 Windows。 下面对我来说很好。

        【讨论】:

          【解决方案6】:

          关于这个问题的一个非常笼统的看法,如果 python 抱怨找不到我知道存在的模块,我会这样做: (这是非常普遍而基本的东西,所以如果这是你在发布之前已经尝试过的东西,我深表歉意......在这种情况下,我希望它对其他人有用)

          1:转到 python 安装目录并确保模块确实存在(或者:找出它的确切位置——我有一些模块是项目的一部分,因此不在主目录中)。 ...有时这会发现该模块实际上并未安装,尽管看起来确实如此)

          2:确保你写的正确(大写/小写字母可能是令人沮丧的根源——import 语句需要反映模块的目录名称)

          3:如果它不在 python 路径中,设置 $PYTHONPATH 环境变量或在脚本开头放置类似的内容会有所帮助:

          import sys
          sys.path.append('\\path\\to_the_directory\\containing_themodule')
          

          (需要双斜线以确保它们不被视为特殊字符) 在本例中,pytk 将位于 \path\to_the_directory\contain_themodule\pytk' 中。

          【讨论】:

            猜你喜欢
            • 2018-08-30
            • 2020-12-23
            • 2018-01-12
            • 2021-11-24
            • 2020-04-24
            • 2017-07-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多