安装后无法导入 praw 模块

Posted

技术标签:

【中文标题】安装后无法导入 praw 模块【英文标题】:Unable to import praw module after install 【发布时间】:2013-10-25 07:03:15 【问题描述】:

编辑:在您开始删除/修改安装之前,请浏览 StvnW 的回答/摘要,以确保您正在应用适合您的解决方案。

我已经安装了 python 2.7.5 和 pip [编辑:mac OSX Mountain Lion。] 我已经在终端中运行了“pip install praw”。都好。当我运行 python 并运行“import praw”时,我得到:

    ...$ python
    Python 2.7.5 (v2.7.5:ab05e7dd2788, May 13 2013, 13:18:45) 
    [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import praw
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named praw

...来自脚本的相同 ImportError。

当我安装 praw 时,我得到了这个:

    $ pip install praw
    Downloading/unpacking praw
      Downloading praw-2.1.10.tar.gz (83kB): 83kB downloaded
      Running setup.py egg_info for package praw

    Requirement already satisfied (use --upgrade to upgrade): requests>=1.2.0 in
    /usr/local/lib/python2.7/site-packages (from praw)
    Requirement already satisfied (use --upgrade to upgrade): six in
    /usr/local/lib/python2.7/site-packages (from praw)
    Requirement already satisfied (use --upgrade to upgrade): update-checker>=0.6 in
    /usr/local/lib/python2.7/site-packages (from praw)
    Requirement already satisfied (use --upgrade to upgrade): setuptools in
    /usr/local/lib/python2.7/site-packages/setuptools-1.1.6-py2.7.egg (from update-
    checker>=0.6->praw)
    Installing collected packages: praw
      Running setup.py install for praw

        Installing praw-multiprocess script to /usr/local/bin
    Successfully installed praw
    Cleaning up...

在 python 中,如果我运行 help('modules') 它不存在。

对 python 来说相对较新,我无法通过谷歌搜索来解决这个问题。任何提示将不胜感激。

编辑:

坐代表:

我已卸载 2.7.2、praw 和 (homebrew) pip。我运行了 python 2.7.5,但它找不到模块(正如你所怀疑的那样。)然后我用 easy_install 重新安装了 pip,现在 2.7.5 正在寻找 praw 但给出了这个错误:

    $ python
    Python 2.7.5 (v2.7.5:ab05e7dd2788, May 13 2013, 13:18:45) 
    [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import praw
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/Library/Python/2.7/site-packages/praw/__init__.py", line 43, in <module>
         from update_checker import update_check
       File "/Library/Python/2.7/site-packages/update_checker.py", line 11, in <module>
         from pkg_resources import parse_version as V
    ImportError: No module named pkg_resources
    >>>

感谢到目前为止的帮助,虚假安装是问题 1 的根源。

最终问题的解决方案可以在这里找到:

No module named pkg_resources

我希望有一些方法可以为未来的读者总结这一点,但我做了很多事情,以至于我不再记得是什么解决了什么问题。我基本上卸载了所有东西(python 2.7.2、2.7.5、praw、pip)从http://python.org/download/重新安装了2.7.5,用easy_install(和sudo命令)而不是自制软件重新安装了pip,用sudo命令重新安装了praw,然后按照上面链接中后续模块错误的说明。希望有帮助。 :)

【问题讨论】:

奇怪。如果是 Windows,只需退出并再次重复(但不知道这是否能解决问题) 你是如何安装 pip 的?如果你 import sys; print sys.path 是 /usr/local/python2.7/site-packages/ 包括? 不完全:'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages', '/Library/Python/2.7/site-packages' 编辑:这些是对站点包的唯一引用。 【参考方案1】:

这很奇怪。我怀疑你的 mac 操作系统上有另一个版本的 python2.7

【讨论】:

请尝试运行2.7.2并导入praw python 不会让你确定 0.0.x,只有 0.x,据我所知。我可以运行 2.6 或 2.7,但不能指定 2.7.2 或 2.7.5。【参考方案2】:

Python 的 OS X 系统版本位于 /System/Library/Frameworks/Python.Framework/&lt;verson&gt;,每个版本都链接到 /Library/Python/&lt;version&gt;/site-packages。好像你已经安装了另一个版本的 python 和/或 pip 到/usr/local,但是当你调用 python 时你仍然得到系统版本。

试试这个:

$ /usr/local/bin/python
>>> import praw

如果您打算使用 Python 进行大量工作,我还建议您研究像 pyenv 和 virtualenv 这样的工具。 Pyenv 让您可以轻松管理和在多个版本之间切换(包括微版本 x.x.3、x.x.5 等)。 Virtualenv 允许您创建独立的 Python 环境,您可以在其中确定特定项目特定的站点包版本。

编辑(总结):

sudo easy_install pip 将在 /System/Library/Python/ 下安装 pip。调用该 pip 会将包安装到 /Library/Python//site-packages brew install python 将在 /usr/local/ 下安装 Python 的第二个版本——包括 pip。该 pip 会将包放入 /usr/local/lib/python/site-packages/`。 一个版本可能看不到安装到另一个版本的软件包。 which pythonwhich pip 有助于排除故障。 上述 Dean 的最终解决方案导致将用户包安装到系统站点包中。 尽管 Dean 选择更新系统 Python,但许多人会提倡使用 brew、pyenv 和 virtualenv 来将自己与系统 Python 隔离开来。

【讨论】:

$ /usr/local/bin/python Python 2.7.5 (v2.7.5:ab05e7dd2788, May 13, 2013, 13:18:45) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 输入“help”、“copyright”、“credits”或“license”以获取更多信息。 >>> import praw Traceback(最近一次调用最后):文件“”,第 1 行,在 文件“/Library/Python/2.7/site-packages/praw/__init__.py”,第 43 行,在 from update_checker import update_check File "/Library/Python/2.7/site-packages/update_checker.py",第 11 行,在 from pkg_resources import parse_version as V ImportError: No module named pkg_resources >>>跨度> 哦...它不尊重格式。那就是它吐出来的东西。我用 easy_install 和 pip 重新安装了 praw(并用 easy_install 和 homebrew 重新安装了 pip),根据我采取的路线,我得到了不同的错误。这有点像进步。 ;) sudo easy_install pip 将在 /Library/Python/ 下安装 pip,而 brew install python 将在 /usr/local 下安装 python 和 pip。 ImportError: No module named pkg_resources 是因为你缺少 setuptools。你需要pip install setuptools StvnW 基本上总结了这个问题。混合 pip 和 brew 搞砸了位置,但 easy_install 和 pip 玩得很好。从python.org/download 下载的python 无缝替换了默认安装。 我建议采用另一条路径,让系统单独安装并专门处理 pyenv 和 virtualenv。【参考方案3】:

如果您使用的是 Mac。使用 which python 检查 shell 路径上的 python 版本。然后确保您尝试运行的脚本中的 shebang 行使用相同版本的 python。

在我的终端中,我输入了 which python 得到了输出 /usr/local/bin/python

我转到我试图运行的脚本并将以下内容添加到第一行 #!/usr/local/bin/python

然后我回到了我的终端。检查我是否与要运行和键入的脚本位于同一目录中 ./my_script.py

如果此时您没有看到任何输出,请确保您已通过在终端中键入 chmod +x my_script.py 为您的脚本启用了执行权限。然后尝试使用./my_script.py再次运行脚本

【讨论】:

以上是关于安装后无法导入 praw 模块的主要内容,如果未能解决你的问题,请参考以下文章

无法导入已安装的模块

我将Python2.7安装在E盘,然后安装wxpython后,无法导入wx模块,提示“ImportError: No module named wx

Python的错误导入已经安装模块问题,怎么解决

pip安装的模块无法导入

Spark 似乎已安装但无法导入 pyspark 模块

Python3中无法导入ssl模块的解决办法