【问题标题】:Pip says that pymongo has been installed, but doesn't show it as installedPip 说 pymongo 已经安装,但没有显示为已安装
【发布时间】:2016-05-05 04:21:20
【问题描述】:

我正在尝试在虚拟环境中安装pymongo,pip说已经安装了,但是好像没有:

(venv)$ ./myapp.py
Traceback (most recent call last):
  File "./myapp.py", line 5, in <module>
    import myAppMongo
  File "/home/me/python/myapp/myAppMongo.py", line 4, in <module>
    from pymongo import MongoClient
ImportError: No module named 'pymongo'

我已经安装了 pymongo:

(venv)$ pip --no-cache install pymongo
Collecting pymongo
  Downloading pymongo-3.2.tar.gz (473kB)
    100% |████████████████████████████████| 475kB 18.3MB/s
Installing collected packages: pymongo
  Running setup.py install for pymongo ... done
Successfully installed pymongo

但它并没有出现在 pip 的冻结输出中:

(venv)$ pip freeze |grep -ic pymongo
0

我正在使用他们的 python 3 包运行 Amazon 的 linux:

(venv)$ sudo yum list installed|grep -i python3
python34.x86_64                   3.4.3-1.30.amzn1              @amzn-main
python34-devel.x86_64             3.4.3-1.30.amzn1              @amzn-main
python34-libs.x86_64              3.4.3-1.30.amzn1              @amzn-main
python34-pip.noarch               6.1.1-1.21.amzn1              @amzn-main
python34-setuptools.noarch        12.2-1.30.amzn1               @amzn-main
python34-test.x86_64              3.4.3-1.30.amzn1              @amzn-main
python34-tools.x86_64             3.4.3-1.30.amzn1              @amzn-main
python34-virtualenv.noarch        12.0.7-1.12.amzn1             @amzn-updates

我怎样才能让它工作?

【问题讨论】:

  • ./myapp.py 是否在其第一行定义了解释器?
  • 如果你尝试python myapp.py会怎样?
  • 是的,$ head -n 1 myapp.py #!/home/me/python/myapp/venv/bin/python
  • @PeterWood,无论哪种方式,我都会收到 No module named 'pymongo' 错误。
  • 我在您的 $ pip freeze [...] 示例中看不到 (venv) 前缀。您是从虚拟环境中运行命令并忘记复制前缀还是没有从虚拟环境中运行它?

标签: python python-3.x pip virtualenv pymongo


【解决方案1】:

我想知道您的虚拟环境是否设置不正确?

两个都做

$ which python

$ which pip

向您展示这些命令是从 venv 中运行的吗?

【讨论】:

  • 它们确实显示了虚拟环境的正确路径。
【解决方案2】:

让我们从头开始:

输入这个并在此处粘贴响应:

type pip

【讨论】:

  • $ type pip pip is hashed (/home/me/python/myapp/venv/bin/pip)
  • 这是正确的点。 python -V 必须返回 Python 3.3.X,对吧?
  • (venv)$ python --version Python 3.4.3
  • 好的,一切正常。如果你在没有--no-cache 的情况下运行pip 会怎样? pip install pymongo
  • 如我最初的问题所示,这就是我运行它的方式,试图消除缓存作为问题的可能来源。
【解决方案3】:

尝试使用pip3 来安装pymongo 而不是pip

【讨论】:

  • 这似乎没有什么区别,我认为它们都是一样的。运行 which pipwhich pip3 表明它们都在我的虚拟环境的 bin 文件夹中。此外,pip --versionpip3 --version 显示相同的版本。
  • 你在虚拟环境中运行这些命令,对吗?
  • #!/home/me/python/myapp/venv/bin/python3?
  • (venv)$ head -n 1 $(which pip) #!/home/me/python/myapp/venv/bin/python3.4
猜你喜欢
  • 2015-09-13
  • 1970-01-01
  • 1970-01-01
  • 2021-06-11
  • 2015-01-05
  • 2020-11-28
  • 2022-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多