我使用pip freeze來取出我的virtualenv的每個依賴項,以便在其他位置使用此環境,以便像下面那樣獲取requirements.txt。爲什麼pip凍結生成package_name = 0.0.0
certifi==2017.7.27.1
chardet==3.0.4
get==0.0.0
gevent==1.2.2
greenlet==0.4.12
idna==2.6
numpy==1.13.3
pandas==0.20.3
post==0.0.0
psycopg2==2.7.3.1
public==0.0.0
python-dateutil==2.6.1
pytz==2017.2
query-string==0.0.0
request==0.0.0
requests==2.18.4
setupfiles==0.0.50
six==1.11.0
sqlalchemy==1.1.14
urllib3==1.22
我以前在其他電腦這個要求,但每當我試圖運行PIP安裝-r requirements.txt我有類似下面的錯誤。
$ pip install -r requirements.txt
Requirement already satisfied: certifi==2017.7.27.1 in d:\workspace\juice-project\venv\lib\site-packages (from -r requirements.txt (line 1))
Requirement already satisfied: chardet==3.0.4 in d:\workspace\juice-project\venv\lib\site-packages (from -r requirements.txt (line 2))
Collecting get==0.0.0 (from -r requirements.txt (line 3))
Using cached get-0.0.0.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "d:\workspace\juice-project\venv\lib\tokenize.py", line 452, in open
buffer = _builtin_open(filename, 'rb')
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\verys\\AppData\\Local\\Temp\\pip-build-1cd8yl0b\\get\\setup.py'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\verys\AppData\Local\Temp\pip-build-1cd8yl0b\get\
我以爲是窗戶使用者的特權造成的,所以我花了很多時間來解決這個問題。我因爲這個bug而非常惱火。你能解釋爲什麼這些未使用的東西會產生,爲什麼這個錯誤可能是這樣的?
除了答案之外,還有一個問題:你真的安裝了嗎?你真的使用這些'get' /'request' /'setupfiles'嗎?或者您是否嘗試安裝'requests',但錯誤輸入?然後將您的計算機視爲可能被黑客入侵併感染。我很難破譯這些庫,並且可能是作者故意做的,以隱藏惡意代碼。閱讀關於如何執行此類攻擊的信息:https://nakedsecurity.sophos.com/2017/09/19/pypi-python-repository-hit-by-typosquatting-sneak-attack/ –
@SergeyVasilyev我在我的原始virtualenv,並沒有關於這個問題。但我在我公司的代理後面運行了這個環境。刪除每行以0.0.0結尾的行後,我一直使用這個要求。 – verystrongjoe
這裏的區別在於:'request'沒問題,'request'不是。前者是一個衆所周知的庫,後者可能是一個惡意軟件包(由於其內部的祕密程度以及通過'setup.py'安裝時執行多少額外* bash *邏輯)。僅僅輸入一次就可以讓後者及其依賴項進入你的虛擬世界。 –