【发布时间】:2021-04-02 12:22:34
【问题描述】:
我正在构建一个网络爬虫,我正在尝试导入“请求”包,但我收到了一个错误。我被告知以下内容:
ModuleNotFoundError: 没有名为“请求”的模块
完全错误:
(venv) USERs-MacBook-Pro:Scraper user$ /usr/local/opt/python@3.9/bin/python3.9 /Users/user/git/ML/Python/Practice/Scraper/Scraper.py
Traceback (most recent call last):
File "/Users/user/git/ML/Python/Practice/Scraper/Scraper.py", line 1, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
我在设置项目时采取的步骤:
- python3 -m venv 项目名称/venv
- 源项目名称/venv/bin/activate
- python3 -m pip install SomePackage
确认包和依赖已安装:
(venv) USERs-MacBook-Pro:Scraper user$ pip list
Package Version
---------- ---------
certifi 2020.12.5
chardet 4.0.0
idna 2.10
pip 20.2.3
requests 2.25.1
setuptools 49.2.1
urllib3 1.26.2
【问题讨论】:
-
我猜
pip没有与python3.9链接。您可以尝试运行pip --version并粘贴输出吗? -
您似乎正在运行系统 python3,而不是 venv python3。
-
是的,但是你使用系统python3.9的绝对路径。如果 venv 的默认 python 为 3.9 或
python3.9 filename,请尝试仅使用python filename执行它 -
从您的 venv 中使用的正确可执行文件是
project_name/venv/bin/python3,您使用的是系统版本,难怪导入无法解决。激活您的 venv 后,只需运行python /Users/user/git/ML/Python/Practice/Scraper/Scraper.py,shell 将使用正确的可执行文件。 -
因为获取激活脚本会改变当前的 shell 环境。特别是
PATHenv var,因此在运行python命令时,您的虚拟环境中的可执行文件将优先于任何其他文件。我猜@itroulli 描述得很好;如果有帮助,别忘了给答案投票。
标签: python-3.x pip python-venv