簡體   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