安装后无法导入praw模块

时间:2013-10-16 23:27:29

标签: python

编辑:在开始删除/修改安装之前,请先浏览一下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中如果我运行帮助('modules')它就不存在了。

相对较新的python,我无法通过谷歌搜索对此进行排序。任何提示都会非常感激。

编辑:

SITREP:

我已经卸载了2.7.2,卸载了praw,并卸载了(自制)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,重新安装pip with easy_install(和sudo命令)而不是自制程序,重新安装praw with sudo命令,以及按照上面链接中后续模块错误的说明进行操作。希望有所帮助。 :)

3 个答案:

答案 0 :(得分:4)

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

试试这个:

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

如果您打算使用Python做任何工作,我还建议您查看pyenvvirtualenv等工具。 Pyenv可让您轻松管理和切换多个版本(包括微型版本x.x.3,x.x.5等)。 Virtualenv允许您创建独立的Python环境,您可以在其中确定特定项目特定的站点包版本。

编辑(摘要):

  • sudo easy_install pip将在/ System / Library / Python /&lt; version&gt;下安装pip。调用该pip会将软件包安装到/ Library / Python /&lt; version&gt; / site-packages
  • brew install python将安装第二版python - 包括pip - 在/ usr / local /下。该pip将把包放在/ usr / local / lib / python&lt; version&gt; / site-packages /`。
  • 一个版本可能看不到安装到另一个版本的软件包。
  • which pythonwhich pip有助于排查问题。
  • Dean上面的最终解决方案导致用户软件包安装到系统站点包。
  • 尽管Dean选择更新系统Python,但很多人会主张使用brewpyenvvirtualenv将自己与系统Python隔离开来。

答案 1 :(得分:1)

很奇怪。我怀疑你的mac os上有另一个版本的python2.7

答案 2 :(得分:0)

如果您使用的是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

再次运行脚本