0
votes

I am running this on a fresh Ubuntu 20.04 install:

pipenv install with 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",]

then running:

$ 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

it only installs whitenoise and django-storages for some reason, how can i fix this?

additional information:

$ 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

This issue has popped up recently after developing on windows for a while, when it happened I switched to just using a requirements.txt file instead, but now I want to go back to using pipenv.

as far as I can tell it's not a problem with the encoding of the file or the line endings, and I am uncertain as to when/why exactly this started happening.

EDIT: running pipenv install django will install django properly but the pipfile and pipfile.lock remain identical meaning that this is not a problem with the Pipfile

3

3 Answers

1
votes

FIX: So what worked was removing the pipfile and manually re-installing each package with pipenv install, this resulted in a slightly different looking pipfile, by the looks of it what caused me this issue, was an update to pipenv itself... have a look:

old 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",]

after manually re-installing each package on fresh environment:

[[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"

Installing from this pipfile using pipenv install worked fine, and all packages were installed.

I am not exactly sure why this all happened, perhaps it's a bug in pipenv, or maybe there is no backward-compatibility. If anyone knows please let me know.

If you want to fix this without reinstalling every package, you can simply replace bits looking like this:

[packages.whitenoise]
extras = [ "brotli",]

and convert them to this format:

whitenoise = {extras = ["brotli"], version = "*"}

after doing that run pipenv install and all your dependencies will be installed correctly

I submitted an issue on the Pipenv repository: https://github.com/pypa/pipenv/issues/4433

0
votes

setuptools, pip and wheel are a part of python package and come preinstalled. Just keep them updated to the latest version.

0
votes

The only pattern I see here is, that whitenoise and django-storages is not part of the top [packages]. Maybe, just to get closer to the source of the problem, try to take a package, for example gunicorn, past it to the bottom and do something like this:

`[packages.gunicorn]
 extras = [ "",]`

Also, PythonPATH works a bit weird on Windows, make sure thats not the problem when you switched. Maybe have a look at your native Python installation if the packages appeared there and not in your env :)