Django,python3,在安装时我得到了:“我得到了”;父模块';设置工具&x27;“未加载”;

Django,python3,在安装时我得到了:“我得到了”;父模块';设置工具&x27;“未加载”;,python,django,pip,virtualenv,setuptools,Python,Django,Pip,Virtualenv,Setuptools,我看到很多关于未加载父模块“”的错误和建议, 我没有看到任何关于“开箱即用”Django3.5的特别报道 $ mkvirtualenv foobar -p /usr/bin/python3 Already using interpreter /usr/bin/python3 Using base prefix '/usr' New python executable in /home/isaac/.virtualenvs/foobar/bin/python3 Also creating exec

我看到很多关于未加载父模块“”的错误和建议,

我没有看到任何关于“开箱即用”Django3.5的特别报道

$ mkvirtualenv foobar -p /usr/bin/python3
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/isaac/.virtualenvs/foobar/bin/python3
Also creating executable in /home/isaac/.virtualenvs/foobar/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.

[foobar] $ pip install django
Collecting django
  Using cached Django-2.2.15-py3-none-any.whl (7.5 MB)
Collecting pytz
  Using cached pytz-2020.1-py2.py3-none-any.whl (510 kB)
Collecting sqlparse>=0.2.2
  Using cached sqlparse-0.3.1-py2.py3-none-any.whl (40 kB)
Installing collected packages: pytz, sqlparse, django
Successfully installed django-2.2.15 pytz-2020.1 sqlparse-0.3.1

[foobar] $ python
Python 3.5.3 (default, Jul  9 2020, 13:00:10)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/isaac/.virtualenvs/foobar/lib/python3.5/site-packages/django/__init__.py", line 1, in <module>
    from django.utils.version import get_version
  File "/home/isaac/.virtualenvs/foobar/lib/python3.5/site-packages/django/utils/version.py", line 6, in <module>
    from distutils.version import LooseVersion
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 666, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 577, in module_from_spec
  File "/home/isaac/.virtualenvs/foobar/lib/python3.5/site-packages/_distutils_hack/__init__.py", line 82, in create_module
    return importlib.import_module('._distutils', 'setuptools')
  File "/home/isaac/.virtualenvs/foobar/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 981, in _gcd_import
  File "<frozen importlib._bootstrap>", line 931, in _sanity_check
SystemError: Parent module 'setuptools' not loaded, cannot perform relative import
$mkvirtualenv foobar-p/usr/bin/python3
已经在使用解释器/usr/bin/python3
使用基本前缀“/usr”
新的python可执行文件位于/home/isaac/.virtualenvs/foobar/bin/python3中
还在/home/isaac/.virtualenvs/foobar/bin/python中创建可执行文件
安装setuptools、pkg_资源、pip、wheel…完成。
[foobar]$pip安装django
收集django
使用缓存的Django-2.2.15-py3-none-any.whl(7.5 MB)
收集pytz
使用缓存的pytz-2020.1-py2.py3-none-any.whl(510 kB)
正在收集sqlparse>=0.2.2
使用缓存的sqlparse-0.3.1-py2.py3-none-any.whl(40KB)
安装收集的软件包:pytz、sqlparse、django
已成功安装django-2.2.15 pytz-2020.1 sqlparse-0.3.1
[foobar]$python
Python 3.5.3(默认值,2020年7月9日,13:00:10)
[GCC 6.3.0 20170516]在linux上
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>进口django
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/home/isaac/.virtualenvs/foobar/lib/python3.5/site packages/django/\uuuuu init\uuuuuuuuu.py”,第1行,在
从django.utils.version导入获取\u版本
文件“/home/isaac/.virtualenvs/foobar/lib/python3.5/site packages/django/utils/version.py”,第6行,在
从distutils.version导入新版本
文件“”,第969行,在“查找”和“加载”中
文件“”,第958行,在“查找”和“加载”中解锁
文件“”,第666行,在“加载”中
文件“”,第577行,位于\u规范的模块\u中
文件“/home/isaac/.virtualenvs/foobar/lib/python3.5/site packages/\u distutils\u hack/\u init\u.py”,第82行,在创建模块中
返回importlib.import\u模块(“.\u distutils”,“setuptools”)
文件“/home/isaac/.virtualenvs/foobar/lib/python3.5/importlib/\uuuu init\uuuuu.py”,第126行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第981行,在_gcd_import中
文件“”,第931行,在检查中
系统错误:未加载父模块“setuptools”,无法执行相对导入
如您所见,我使用python3.5安装了django

它似乎可以与python2.7配合使用

有没有人知道如何绕过这个bug,或者我在我的环境中做了什么傻事


我正在使用debian stretch而不是buster,但我不确定是否已经准备好升级。

尝试在python3中使用认可的方式,其中venv是stdlib的一部分:

/usr/bin/python3 -m venv /home/isaac/.virtualenvs/foobar
/home/isaac/.virtualenvs/foobar/bin/pip install django

我也有类似的问题。我认为这是您安装pip的Django版本。对我来说,Python3.5和Django 1.9的组合并没有给我这个错误

$ rm -r /home/isaac/.virtualenvs/foobar #Remove the content
$ /usr/bin/python3 -m venv /home/isaac/.virtualenvs/foobar #Recreate your environment
$ cd /home/isaac/.virtualenvs/foobar
$ source bin/activate #Activate the environment
$ pip -V #(my version is 8.1.1 -> 20.x ==current version)
$ pip install django==1.9 #That version did not give an teh error
$ django-admin startproject yourprojectname #(worked nicely)

备选方案:在Ubuntu机器上升级Python版本>=3.6,然后准备使用最新的Django版本,setuptools版本50中出现了一些问题

我们可以通过将setuptools降级到49.3.0(或者将pip降级到20.2.1)来“解决”这个问题

pip安装setuptools==49.3.0
pip安装pip==20.2.1


请注意,这应该只是一个临时解决方案

中介绍了一种临时解决方法:


您可能正在使用setuptools 50.0.0。它有一些问题。 试着降低它的等级


pip安装setuptools==49.6.0

确实如此。不过,这样看来,我必须自己管理路径。我确实注意到buster似乎与mkvirtualenv+pip安装django一起工作(python3.7)。。。从理论上讲,您可以
source$HOME/.virtualenvs/foobar/bin/activate
。我更喜欢自己使用完整的路径。是的,设置工具破坏了东西。请参阅和其他新问题。
export SETUPTOOLS_USE_DISTUTILS=stdlib