[英]Why doesn't pip installed package show up in pip freeze?
我正在嘗試通過pip安裝此軟件包 。 當我運行pip install flask-googlemaps
,我看到通常的輸出,並且包已成功安裝,還有一些依賴項。 如果我然后運行pip freeze
,我會看到列出的所有依賴項,但不是包本身。 為什么?
這是我的流程的全面細分。 我測試了一個新鮮的virtualenv,以確保我不只是錯過它。
$ mkvirtualenv test1
New python executable in /Users/me/.virtualenvs/test1/bin/python2.7 Also creating executable in /Users/me/.virtualenvs/test1/bin/python Installing setuptools, pip, wheel...done. virtualenvwrapper.user_scripts creating /Users/me/.virtualenvs/test1/bin/predeactivate virtualenvwrapper.user_scripts creating /Users/me/.virtualenvs/test1/bin/postdeactivate virtualenvwrapper.user_scripts creating /Users/me/.virtualenvs/test1/bin/preactivate virtualenvwrapper.user_scripts creating /Users/me/.virtualenvs/test1/bin/postactivate virtualenvwrapper.user_scripts creating /Users/me/.virtualenvs/test1/bin/get_env_details
$ pip freeze
(no results, because nothing has been installed yet)
$ pip install flask-googlemaps
Collecting flask-googlemaps Using cached Flask_GoogleMaps-0.2.5-py2.py3-none-any.whl Collecting flask (from flask-googlemaps) Using cached Flask-0.12.2-py2.py3-none-any.whl Collecting Werkzeug>=0.7 (from flask->flask-googlemaps) Using cached Werkzeug-0.12.2-py2.py3-none-any.whl Collecting Jinja2>=2.4 (from flask->flask-googlemaps) Using cached Jinja2-2.9.6-py2.py3-none-any.whl Collecting click>=2.0 (from flask->flask-googlemaps) Using cached click-6.7-py2.py3-none-any.whl Collecting itsdangerous>=0.21 (from flask->flask-googlemaps) Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->flask->flask-googlemaps) Installing collected packages: Werkzeug, MarkupSafe, Jinja2, click, itsdangerous, flask, flask-googlemaps Successfully installed Jinja2-2.9.6 MarkupSafe-1.0 Werkzeug-0.12.2 click-6.7 flask-0.12.2 flask-googlemaps itsdangerous-0.24
$ pip freeze
click==6.7 Flask==0.12.2 itsdangerous==0.24 Jinja2==2.9.6 MarkupSafe==1.0 Werkzeug==0.12.2
請注意,flask-googlemaps不包含在第二個pip凍結輸出中,但它的所有依賴項都是。
更奇怪的是,我現在可以完全使用該軟件包。 它已安裝,它只是沒有顯示在pip凍結輸出中。
花了一些時間,但我追查了它。
如果你跑
pip install -v flask-googlemaps
你會在最后看到
Installing collected packages: Werkzeug, MarkupSafe, Jinja2, click, itsdangerous, flask, flask-googlemaps
Compiling /private/var/folders/2h/0dr8jftd1916yq_lp40__wzh0000gn/T/pip-build-avapA_/Jinja2/jinja2/asyncfilters.py ...
File "/private/var/folders/2h/0dr8jftd1916yq_lp40__wzh0000gn/T/pip-build-avapA_/Jinja2/jinja2/asyncfilters.py", line 7
async def auto_to_seq(value):
^
SyntaxError: invalid syntax
Compiling /private/var/folders/2h/0dr8jftd1916yq_lp40__wzh0000gn/T/pip-build-avapA_/Jinja2/jinja2/asyncsupport.py ...
File "/private/var/folders/2h/0dr8jftd1916yq_lp40__wzh0000gn/T/pip-build-avapA_/Jinja2/jinja2/asyncsupport.py", line 22
async def concat_async(async_gen):
^
SyntaxError: invalid syntax
為了證明這個錯誤是燒瓶谷歌地圖沒有出現在pip凍結的原因,我安裝了以前的版本。
pip install flask-googlemaps==0.2.4
Collecting flask-googlemaps==0.2.4
Collecting Flask (from flask-googlemaps==0.2.4)
Using cached Flask-0.12.2-py2.py3-none-any.whl
Collecting Werkzeug>=0.7 (from Flask->flask-googlemaps==0.2.4)
Using cached Werkzeug-0.12.2-py2.py3-none-any.whl
Collecting Jinja2>=2.4 (from Flask->flask-googlemaps==0.2.4)
Using cached Jinja2-2.9.6-py2.py3-none-any.whl
Collecting click>=2.0 (from Flask->flask-googlemaps==0.2.4)
Using cached click-6.7-py2.py3-none-any.whl
Collecting itsdangerous>=0.21 (from Flask->flask-googlemaps==0.2.4)
Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->Flask->flask-googlemaps==0.2.4)
Installing collected packages: Werkzeug, MarkupSafe, Jinja2, click, itsdangerous, Flask, flask-googlemaps
Successfully installed Flask-0.12.2 Jinja2-2.9.6 MarkupSafe-1.0 Werkzeug-0.12.2 click-6.7 flask-googlemaps-0.2.4 itsdangerous-0.24
Pip凍結現在有效
pip freeze
click==6.7
Flask==0.12.2
Flask-GoogleMaps==0.2.4
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
Werkzeug==0.12.2
我剛剛代表您提交了GitHub問題 。
餛飩,
有趣的是你遇到了這個問題。 我正在使用python 3.6並且沒有運行錯誤
pip install -v flask-googlemaps
它完全安裝,我可以使用該包。
我做了一點點戳,這是我發現的:
site-packages為flask-googlemaps提供以下條目
flask_googlemaps
Flask-GoogleMaps-0.2.5-dist-info
通過簡單地重命名Flask-GoogleMaps-0.2.5-dist-info以匹配flask_googlemap的格式,我能夠獲得pip凍結以顯示flask-googlemaps:
davidj> mv Flask-GoogleMaps-0.2.5.dist-info Flask_GoogleMaps-0.2.5.dist-info
davidj> pip freeze
clickk==6.7
Flask==0.12.2
Flask-GoogleMaps==0.2.5
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
pkg-resources==0.0.0
Werkzeug==0.12.2
在這之后,所有的pip函數都適用於包。
也許pip有一些必要的命名約定來將info目錄映射到包目錄....
如果您安裝了多個版本的python,則pip可能會有與版本相關的意外行為。 確保明確使用pip2 install
或pip3 install
,並使用pip2 freeze
或pip3 freeze
來匹配你打算使用的python版本。
(注意:這個答案可能與OP的情況無關,但對於其他一些案例,回答了“為什么pip安裝包不會出現在pip凍結?”的問題。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.