【发布时间】:2019-08-19 15:42:47
【问题描述】:
我是 python 新手,在终端中设置了一些东西,现在正尝试在 Atom 中运行 python 代码。
我的代码编辑器中的前三行是:
import re
import requests
import robobrowser
当我运行代码时,我不断得到
ImportError: 没有名为 robobrowser 的模块
我假设它与我的文件的路径或位置有关,但我不确定如何检查。
我在终端中运行的版本:
(prot) MacBook:prot myname$ python --version
Python 3.7.3
(prot) MacBook:prot myname$ pip --version
pip 19.0.3 from /Users/myname/prot/prot/lib/python3.7/site-
packages/pip (python 3.7)
我还使用以下内容创建了一个虚拟环境:
MacBook:prot myname$ python3 -m venv prot
MacBook:prot myname$ source prot/bin/activate
所以我的默认命令行显示:
(prot) MacBook:prot myname$
运行以下显示所需的包在那里。
(prot) MacBook:prot myname$ pip3 list
Package Version
-------------- --------
beautifulsoup4 4.7.1
certifi 2019.3.9
chardet 3.0.4
idna 2.8
pip 19.0.3
requests 2.21.0
robobrowser 0.5.3
setuptools 40.8.0
six 1.12.0
soupsieve 1.9
urllib3 1.24.1
Werkzeug 0.15.1
编辑(根据 cmets 更新):
import sys
print(sys.version)
在 Atom 输出中(以前说 2.#,所以我更新了 atom 中的版本):
3.7.3(默认,2019 年 3 月 27 日,09:23:15)
[GCC 4.2.1 兼容 Apple LLVM 10.0.0 (clang-1000.0.42)]
Robobrowser 正确显示在终端中:
(prot) MacBook:prot myname$ pip3 show robobrowser
Name: robobrowser
Version: 0.5.3
Summary: Your friendly neighborhood web scraper
Home-page: https://github.com/jmcarp/robobrowser
Author: Joshua Carp
Author-email: jm.carp@gmail.com
License: MIT
Location: /Users/myname/prot/prot/lib/python3.7/site-packages
Requires: beautifulsoup4, requests, six, Werkzeug
Required-by:
为了检查剩余的 robobrowser 问题,我在 atom 中运行了这个:
from pip import _internal
_internal.main(['list'])
得到了这个(注意缺少robobrowser):
Package Version
--------------- --------
cached-property 1.5.1
certifi 2019.3.9
chardet 3.0.4
idna 2.8
pip 19.0.3
python-dateutil 2.8.0
requests 2.21.0
setuptools 40.8.0
six 1.12.0
urllib3 1.24.1
wheel 0.33.1
在终端中,运行
pip show requests
pip show robobrowser
返回相同的位置
/Users/myname/prot/prot/lib/python3.7/site-packages
在原子中,运行
import sys
print(sys.path)
输出
['', '/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/usr/local/Cellar/python/3.7. 3/Frameworks/Python.framework/Versions/3.7/lib/python3.7'、'/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib -dynload', '/usr/local/lib/python3.7/site-packages']
所以我想我需要将上述位置添加到 sys.path
【问题讨论】:
-
你用什么命令来创建你的 virtualenv?您是否明确使用了
-p python3?您确定 virtualenv 中的 python 解释器指向正确的解释器吗?您可以单独导入它们吗(例如从 IDLE 解释器)?你用什么命令来启动你的脚本? -
我编辑了我的帖子来回答你的第一个问题。我不确定如何判断解释器是否指向正确的东西或如何使用 IDLE。为了运行脚本,我在 Atom 中下载了一个名为 Script 的包并在其中运行它,而不是使用终端。
-
更新:我在 Atom 中配置了脚本以使用 python3,并且我通过了代码中的“导入请求”行。 'import robobrowser' 仍然存在问题。
-
@hansence:试试
from robobrowser import RoboBrowser -
试过了,得到一个 ModuleNotFoundError: No module named 'robobrowser' 错误
标签: python importerror