安装后无法导入 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/<verson>
,每个版本都链接到 /Library/Python/<version>/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/brew install python
将在 /usr/local/ 下安装 Python 的第二个版本——包括 pip。该 pip 会将包放入 /usr/local/lib/pythonwhich python
和 which 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(最近一次调用最后):文件“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