在新的python虚拟环境中持久安装模块

如何解决在新的python虚拟环境中持久安装模块

对于背景,我主要在终端中工作,并使用vim编辑代码。对于长期的python项目,我使用诗歌管理venvs并将文件锁定在源代码控制中。

我喜欢在几乎工作的所有venv中安装一些模块,例如ipython / ptpython,(pytest-)icdiff和其他“生活质量”扩展,我不需要将这些模块强加给那些不要使用我的工作流程。我可以使用发行版的软件包管理器(或pipx)在全球范围内安装ptpython,但是当我运行它时,它不会在本地venv中运行,并且无法访问本地依赖项。这变得令人讨厌,因为随着锁定文件的更改,我会定期重新创建venvs。现在,我有一个可以安装东西的shell脚本,但是感觉就像是黑客。

一个理想的解决方案可能是一种创建类似于venv模板的方法,类似于git templatedir选项。 Python有这样的东西吗?

解决方法

virtualenv模块可以选择在venv中包括系统站点软件包:

python3 -m venv --system-site-packages .venv

feature request支持将此选项添加到诗歌中。

this thread中对网站包进行了很好的概述。

,

这可能无法直接回答,但我认为anaconda环境是解决之道。 您可以创建不同的“基础”环境,然后对其进行克隆。 然后,您可以根据需要在新克隆的环境中使用pip添加更多软件包,从而不会更改基础,但可以在新环境中进行自定义。

尝试以下答案: https://stackoverflow.com/a/40702703/7654532

,

解决方案

此问题并非特定于Python venv,它也存在于rvm和nvm中。只需将软件包安装在全局Python命名空间下,然后将其添加到您的PYTHONPATH中,这样,如果该软件包未安装在本地存储库中,则Python会退回到您的全局Python命名空间,而无需修改存储库锁定文件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?