繁体   English   中英

找不到`pip install -r requirements.txt`安装的软件包

[英]Packages installed by `pip install -r requirements.txt` are not found

我正在尝试运行一个继承的Django项目。 我已经设置了virtualenv并尝试通过pip install -r requirements.txt传递需求文件。 一切似乎都正常。 它告诉我它正在正确的virtualenv中运行,并且软件包似乎已安装,例如:

Downloading/unpacking django-mediasync==2.2.0 (from -r requirements.txt (line 22))
  Downloading django-mediasync-2.2.0.tar.gz
  Running setup.py egg_info for package django-mediasync

但是当我尝试同步数据库或运行服务器时,

Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x10f15e290>>
Traceback (most recent call last):
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 88, in inner_run
    self.validate(display_num_errors=True)
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/core/management/base.py", line 249, in validate
    num_errors = get_validation_errors(s, app)
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/core/management/validation.py", line 36, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/db/models/loading.py", line 146, in get_app_errors
    self._populate()
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/db/models/loading.py", line 61, in _populate
    self.load_app(app_name, True)
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/db/models/loading.py", line 76, in load_app
    app_module = import_module(app_name)
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
ImportError: No module named mediasync

奇怪的是,我手动安装了mediasync (或任何其他必要的软件包)( pip install django-mediasync ),现在可以找到该软件包。

我究竟做错了什么? 我不想手动安装所有这些软件包。

我认为这样做时: pip install -r requirements.txt出现了一些错误,但您没有注意到。 基本上,整个操作将在出现错误时停止。

因此,例如,您的requirements.txt具有4个这样的包:

A
B
C
D

如果在安装B时出错,则不会安装3个软件包BCD 在我看来,在您的requirements.txt安装一个软件包时出现错误,并且根本没有安装django-mediasync

如果我的假设正确,请执行pip install -r requirements.txt并检查回溯的最后一部分。 如果出现故障,您将确切知道原因。

您正在执行sudo pip install django-mediasyncsudo pip install -r requirements.txt吗? 如果是这样,它将安装在virtualenv之外。 请参阅如何在virtualenv中安装哪些程序需要“ sudo”?

基本上因为您的用户应该拥有virtualenv目录,所以您不需要超级用户特权即可通过pip安装任何内容。 进行which pipsudo which pip ,您将看到它们是不同的。

另一种可能是您的requirements.txt安装不正确。 它可能会输出与您提到的行类似的行,但是显然pip会在安装任何组件之前扫描requirements.txt中的所有软件包。 如果有任何错误,它将中止所有软件包的安装。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM