Pipenv install 不会安装 Pipfile 中的所有内容
Pipenv install does not install everything from Pipfile
我 运行 这是全新的 Ubuntu 20.04 安装:
pipenv install
使用 Pipfile:
$ cat Pipfile
[packages]
Django = "*"
django-split-settings = "*"
python-dotenv = "*"
django-compressor = "*"
django-libsass = "*"
Brotli = "*"
django-htmlmin = "*"
gunicorn = "*"
dj-database-url = "*"
wagtail = "*"
wagtail-metadata = "*"
wagtail-blocks = "*"
psycopg2 = "*"
django-tz-detect = "*"
wagtailcodeblock = "*"
django-taggit = "*"
django-taggit-templatetags2 = "*"
django-fontawesome-5 = "*"
django-debug-toolbar = "*"
wagtail-robots = "*"
wand = "*"
[dev-packages]
pylint = "*"
django-debug-toolbar = "*"
[requires]
python_version = "3.7"
[packages.whitenoise]
extras = [ "brotli",]
[packages.django-storages]
extras = [ "dropbox",]
然后 运行:
$ pipenv run pip list
Package Version
--------------- -------
django-storages 1.9.1
pip 20.2.2
setuptools 49.6.0
wheel 0.35.1
whitenoise 5.2.0
它出于某种原因只安装 whitenoise 和 django-storages,我该如何解决这个问题?
补充信息:
$ which python
/home/maks/.local/share/virtualenvs/personal-website-lhNGB4ub/bin/python
$ which pip
/home/maks/.local/share/virtualenvs/personal-website-lhNGB4ub/bin/pip
$ pyenv which python
/home/maks/.pyenv/versions/3.7.8/bin/python
这个问题最近在 windows 上开发了一段时间后突然出现,当它发生时我切换到只使用 requirements.txt 文件,但现在我想回到使用 pipenv .
据我所知,这不是文件编码或行尾的问题,我不确定 when/why 这到底是怎么开始的。
编辑:
运行 pipenv install django
将正确安装 django 但 pipfile 和 pipfile.lock 保持相同意味着这不是 Pipfile
的问题
setuptools
、pip
和 wheel
是 python 软件包的一部分并已预安装。只需将它们更新到最新版本即可。
我在这里看到的唯一模式是,whitenoise 和 django-storages 不是顶级 [packages] 的一部分。也许,只是为了更接近问题的根源,尝试拿一个包,例如 gunicorn,把它放到底部,然后做这样的事情:
`[packages.gunicorn]
extras = [ "",]`
另外,PythonPATH 在 Windows 上工作有点奇怪,请确保这不是您切换时的问题。如果包出现在那里而不是在你的环境中,也许看看你的本地 Python 安装 :)
修复:
因此,有效的方法是删除 pipfile 并手动 re-installing 每个包 pipenv install
,这导致 pipfile 看起来略有不同,从外观上看是导致我出现此问题的原因,是对 pipenv 本身的更新。 ..看看:
旧 Pipfile:
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[requires]
python_version = "3.7"
[packages]
Django = "*"
django-split-settings = "*"
python-dotenv = "*"
django-compressor = "*"
django-libsass = "*"
Brotli = "*"
django-htmlmin = "*"
dj-database-url = "*"
wagtail = "*"
wagtail-metadata = "*"
wagtail-blocks = "*"
psycopg2 = "*"
django-tz-detect = "*"
wagtailcodeblock = "*"
django-taggit = "*"
django-taggit-templatetags2 = "*"
django-fontawesome-5 = "*"
django-debug-toolbar = "*"
wagtail-robots = "*"
wand = "*"
gunicorn = "*"
[dev-packages]
pylint = "*"
django-debug-toolbar = "*"
[packages.whitenoise]
extras = [ "brotli",]
[packages.django-storages]
extras = [ "dropbox",]
手动 re-installing 新鲜环境中的每个包后:
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
pylint = "*"
django-debug-toolbar = "*"
[packages]
django = "*"
django-split-settings = "*"
python-dotenv = "*"
django-compressor = "*"
django-libsass = "*"
brotli = "*"
django-htmlmin = "*"
dj-database-url = "*"
wagtail = "*"
wagtail-metadata = "*"
wagtail-blocks = "*"
django-tz-detect = "*"
wagtailcodeblock = "*"
django-taggit = "*"
django-taggit-templatetags2 = "*"
django-fontawesome-5 = "*"
django-debug-toolbar = "*"
wagtail-robots = "*"
wand = "*"
whitenoise = {extras = ["brotli"], version = "*"}
django-storages = {extras = ["dropbox"], version = "*"}
gunicorn = "*"
[requires]
python_version = "3.7"
使用 pipenv install
从这个 pipfile 安装工作正常,所有软件包都已安装。
我不太确定为什么会发生这一切,也许是 pipenv 中的一个错误,或者可能没有 backward-compatibility。如果有人知道请告诉我。
如果您想在不重新安装每个软件包的情况下解决这个问题,您可以简单地替换如下所示的位:
[packages.whitenoise]
extras = [ "brotli",]
并将它们转换成这种格式:
whitenoise = {extras = ["brotli"], version = "*"}
完成后 运行 pipenv install
并且您的所有依赖项都将正确安装
我在 Pipenv 存储库上提交了一个问题:https://github.com/pypa/pipenv/issues/4433
我 运行 这是全新的 Ubuntu 20.04 安装:
pipenv install
使用 Pipfile:
$ cat Pipfile
[packages]
Django = "*"
django-split-settings = "*"
python-dotenv = "*"
django-compressor = "*"
django-libsass = "*"
Brotli = "*"
django-htmlmin = "*"
gunicorn = "*"
dj-database-url = "*"
wagtail = "*"
wagtail-metadata = "*"
wagtail-blocks = "*"
psycopg2 = "*"
django-tz-detect = "*"
wagtailcodeblock = "*"
django-taggit = "*"
django-taggit-templatetags2 = "*"
django-fontawesome-5 = "*"
django-debug-toolbar = "*"
wagtail-robots = "*"
wand = "*"
[dev-packages]
pylint = "*"
django-debug-toolbar = "*"
[requires]
python_version = "3.7"
[packages.whitenoise]
extras = [ "brotli",]
[packages.django-storages]
extras = [ "dropbox",]
然后 运行:
$ pipenv run pip list
Package Version
--------------- -------
django-storages 1.9.1
pip 20.2.2
setuptools 49.6.0
wheel 0.35.1
whitenoise 5.2.0
它出于某种原因只安装 whitenoise 和 django-storages,我该如何解决这个问题?
补充信息:
$ which python
/home/maks/.local/share/virtualenvs/personal-website-lhNGB4ub/bin/python
$ which pip
/home/maks/.local/share/virtualenvs/personal-website-lhNGB4ub/bin/pip
$ pyenv which python
/home/maks/.pyenv/versions/3.7.8/bin/python
这个问题最近在 windows 上开发了一段时间后突然出现,当它发生时我切换到只使用 requirements.txt 文件,但现在我想回到使用 pipenv .
据我所知,这不是文件编码或行尾的问题,我不确定 when/why 这到底是怎么开始的。
编辑:
运行 pipenv install django
将正确安装 django 但 pipfile 和 pipfile.lock 保持相同意味着这不是 Pipfile
setuptools
、pip
和 wheel
是 python 软件包的一部分并已预安装。只需将它们更新到最新版本即可。
我在这里看到的唯一模式是,whitenoise 和 django-storages 不是顶级 [packages] 的一部分。也许,只是为了更接近问题的根源,尝试拿一个包,例如 gunicorn,把它放到底部,然后做这样的事情:
`[packages.gunicorn]
extras = [ "",]`
另外,PythonPATH 在 Windows 上工作有点奇怪,请确保这不是您切换时的问题。如果包出现在那里而不是在你的环境中,也许看看你的本地 Python 安装 :)
修复:
因此,有效的方法是删除 pipfile 并手动 re-installing 每个包 pipenv install
,这导致 pipfile 看起来略有不同,从外观上看是导致我出现此问题的原因,是对 pipenv 本身的更新。 ..看看:
旧 Pipfile:
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[requires]
python_version = "3.7"
[packages]
Django = "*"
django-split-settings = "*"
python-dotenv = "*"
django-compressor = "*"
django-libsass = "*"
Brotli = "*"
django-htmlmin = "*"
dj-database-url = "*"
wagtail = "*"
wagtail-metadata = "*"
wagtail-blocks = "*"
psycopg2 = "*"
django-tz-detect = "*"
wagtailcodeblock = "*"
django-taggit = "*"
django-taggit-templatetags2 = "*"
django-fontawesome-5 = "*"
django-debug-toolbar = "*"
wagtail-robots = "*"
wand = "*"
gunicorn = "*"
[dev-packages]
pylint = "*"
django-debug-toolbar = "*"
[packages.whitenoise]
extras = [ "brotli",]
[packages.django-storages]
extras = [ "dropbox",]
手动 re-installing 新鲜环境中的每个包后:
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
pylint = "*"
django-debug-toolbar = "*"
[packages]
django = "*"
django-split-settings = "*"
python-dotenv = "*"
django-compressor = "*"
django-libsass = "*"
brotli = "*"
django-htmlmin = "*"
dj-database-url = "*"
wagtail = "*"
wagtail-metadata = "*"
wagtail-blocks = "*"
django-tz-detect = "*"
wagtailcodeblock = "*"
django-taggit = "*"
django-taggit-templatetags2 = "*"
django-fontawesome-5 = "*"
django-debug-toolbar = "*"
wagtail-robots = "*"
wand = "*"
whitenoise = {extras = ["brotli"], version = "*"}
django-storages = {extras = ["dropbox"], version = "*"}
gunicorn = "*"
[requires]
python_version = "3.7"
使用 pipenv install
从这个 pipfile 安装工作正常,所有软件包都已安装。
我不太确定为什么会发生这一切,也许是 pipenv 中的一个错误,或者可能没有 backward-compatibility。如果有人知道请告诉我。
如果您想在不重新安装每个软件包的情况下解决这个问题,您可以简单地替换如下所示的位:
[packages.whitenoise]
extras = [ "brotli",]
并将它们转换成这种格式:
whitenoise = {extras = ["brotli"], version = "*"}
完成后 运行 pipenv install
并且您的所有依赖项都将正确安装
我在 Pipenv 存储库上提交了一个问题:https://github.com/pypa/pipenv/issues/4433