首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在创建virtualenv时更改种子包版本?

如何在创建virtualenv时更改种子包版本?
EN

Stack Overflow用户
提问于 2021-12-23 10:37:13
回答 1查看 437关注 0票数 0

在将django-rest框架API部署到生产中时,我遇到了一个问题。在virtualenv创建时添加种子包pip、setuptools和轮子会导致我的部署失败。这里使用的setuptools的特定版本(59.1.1)似乎阻止了Newlines (与此问题相关)的使用,后者用于django-hijack==2.10.1的描述中,并导致以下错误。这种行为已在较新版本的setuptools中恢复(从59.4.0开始)。因此,我想将添加到种子包中的setuptools的版本固定在virtualenv创建上,以确保我的部署成功,但我不知道是否/在哪里可以设置添加的包版本。任何帮助都是非常感谢的!

代码语言:javascript
运行
复制
Successfully created virtual environment! 
Virtualenv location: /var/www/backoffice/20211223111028/back/.venv
Installing dependencies from Pipfile.lock (6e978f)...
Ignoring appnope: markers 'sys_platform == "darwin"' don't match your environment
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
Running command 'cd /var/www/backoffice/20211223111028/back && pipenv install' on host 172.31.128.48
Creating a virtualenv for this project...
Pipfile: /var/www/backoffice/20211223111028/back/Pipfile
Using /home/ignition/.pyenv/versions/3.9.0/bin/python3.9 (3.9.0) to create virtualenv...
⠸ Creating virtual environment...created virtual environment CPython3.9.0.final.0-64 in 152ms
  creator CPython3Posix(dest=/var/www/backoffice/20211223111028/back/.venv, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, wheel=bundle, pip=bundle, setuptools=bundle, via=copy, app_data_dir=/home/ignition/.local/share/virtualenv)
    added seed packages: pip==21.3.1, setuptools==59.1.1, wheel==0.37.0
  activators BashActivator,PowerShellActivator,PythonActivator,FishActivator,XonshActivator,CShellActivator
                                                                                                                                                                           ✔ Successfully created virtual environment! 
Installing dependencies from Pipfile.lock (6e978f)...
Virtualenv location: /var/www/backoffice/20211223111028/back/.venv
An error occurred while installing django-hijack==2.1.10 --hash=sha256:be484f0ca67a092d5bf9bf8a5307beb716dc2e86b56a69796479183fdeb9036c! Will try again.
Ignoring appnope: markers 'sys_platform == "darwin"' don't match your environment
Installing initially failed dependencies...
[InstallError]:   File "/usr/local/lib/python3.5/dist-packages/pipenv/cli/command.py", line 253, in install
[InstallError]:       site_packages=state.site_packages
[InstallError]:   File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 2063, in do_install
[InstallError]:       keep_outdated=keep_outdated
[InstallError]:   File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 1312, in do_init
[InstallError]:       pypi_mirror=pypi_mirror,
[InstallError]:   File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 900, in do_install_dependencies
[InstallError]:       retry_list, procs, failed_deps_queue, requirements_dir, **install_kwargs
[InstallError]:   File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 796, in batch_install
[InstallError]:       _cleanup_procs(procs, failed_deps_queue, retry=retry)
[InstallError]:   File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 703, in _cleanup_procs
[InstallError]:       raise exceptions.InstallError(c.dep.name, extra=err_lines)
[pipenv.exceptions.InstallError]: Collecting django-hijack==2.1.10
[pipenv.exceptions.InstallError]:   Using cached django-hijack-2.1.10.tar.gz (20 kB)
[pipenv.exceptions.InstallError]:   Preparing metadata (setup.py): started
[pipenv.exceptions.InstallError]:   Preparing metadata (setup.py): finished with status 'error'
[pipenv.exceptions.InstallError]:   ERROR: Command errored out with exit status 1:
[pipenv.exceptions.InstallError]:    command: /var/www/backoffice/20211223111028/back/.venv/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-oupxjc2y/django-hijack_997c7a8fad3a4188b9337ef9ba8d2bd9/setup.py'"'"'; __file__='"'"'/tmp/pip-install-oupxjc2y/django-hijack_997c7a8fad3a4188b9337ef9ba8d2bd9/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-nykp1oz9
[pipenv.exceptions.InstallError]:        cwd: /tmp/pip-install-oupxjc2y/django-hijack_997c7a8fad3a4188b9337ef9ba8d2bd9/
[pipenv.exceptions.InstallError]:   Complete output (26 lines):
[pipenv.exceptions.InstallError]:   running egg_info
[pipenv.exceptions.InstallError]:   creating /tmp/pip-pip-egg-info-nykp1oz9/django_hijack.egg-info
[pipenv.exceptions.InstallError]:   writing /tmp/pip-pip-egg-info-nykp1oz9/django_hijack.egg-info/PKG-INFO
[pipenv.exceptions.InstallError]:   Traceback (most recent call last):
[pipenv.exceptions.InstallError]:     File "<string>", line 1, in <module>
[pipenv.exceptions.InstallError]:     File "/tmp/pip-install-oupxjc2y/django-hijack_997c7a8fad3a4188b9337ef9ba8d2bd9/setup.py", line 44, in <module>
[pipenv.exceptions.InstallError]:       setup(name="django-hijack",
[pipenv.exceptions.InstallError]:     File "/var/www/backoffice/20211223111028/back/.venv/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup
[pipenv.exceptions.InstallError]:       return distutils.core.setup(**attrs)
[pipenv.exceptions.InstallError]:     File "/home/ignition/.pyenv/versions/3.9.0/lib/python3.9/distutils/core.py", line 148, in setup
[pipenv.exceptions.InstallError]:       dist.run_commands()
[pipenv.exceptions.InstallError]:     File "/home/ignition/.pyenv/versions/3.9.0/lib/python3.9/distutils/dist.py", line 966, in run_commands
[pipenv.exceptions.InstallError]:       self.run_command(cmd)
[pipenv.exceptions.InstallError]:     File "/home/ignition/.pyenv/versions/3.9.0/lib/python3.9/distutils/dist.py", line 985, in run_command
[pipenv.exceptions.InstallError]:       cmd_obj.run()
EN

回答 1

Stack Overflow用户

发布于 2022-09-28 22:15:39

似乎不可能直接将版本固定在一起。Setuptools是为每个新的虚拟环境自动安装的三个种子程序包之一。这个过程由virtualenv控制。

因此,一个笨拙但有效的解决办法就是降低您的虚拟环境的级别。

pip安装virtualenv==20.7.0,例如用于setuptools <=58.0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70460921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档