3

编辑:在您开始删除/修改安装之前,请浏览 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,并卸载了(自制)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 的根源。

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

没有名为 pkg_resources 的模块

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

4

3 回答 3

4

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

尝试这个:

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

如果您打算使用 Python 进行任何数量的工作,我还建议您研究pyenvvirtualenv之类的工具。Pyenv 让您可以轻松管理和在多个版本之间切换(包括微版本 xx3、xx5 等)。Virtualenv 允许您创建独立的 Python 环境,您可以在其中确定特定于特定项目的站点包版本。

编辑(总结):

  • sudo easy_install pip将在 /System/Library/Python/<version> 下安装 pip。调用该 pip 会将包安装到 /Library/Python/<version>/site-packages
  • brew install python将在 /usr/local/ 下安装第二个版本的 python — 包括 pip。该 pip 会将包放在 /usr/local/lib/python<version>/site-packages/` 中。
  • 一个版本可能看不到安装到另一个版本的软件包。
  • which python并且which pip有助于故障排除。
  • 上面 Dean 的最终解决方案导致将用户包安装到系统站点包中。
  • 尽管 Dean 选择更新系统 Python,但许多人会提倡使用brewpyenvvirtualenv来将自己与系统 Python 隔离开来。
于 2013-10-17T00:22:47.077 回答
1

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

于 2013-10-17T00:00:01.920 回答
0

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

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

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

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

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

于 2016-07-31T13:00:49.777 回答