Python 如何在不创建virtualenv的情况下pip安装用Pipfile编写的软件包?
我创建了一个包,包含,我想用docker进行测试Python 如何在不创建virtualenv的情况下pip安装用Pipfile编写的软件包?,python,docker,pip,pipfile,Python,Docker,Pip,Pipfile,我创建了一个包,包含,我想用docker进行测试 我想用pip安装用Pipfile编写的包,而不创建virutalenv # (do something to create some-file) RUN pip install (some-file) 怎么做?最终pip应该能够自己做到这一点,至少他们是这么说的。目前,这还没有实施 目前,pip文件是TOML文件,因此您可以使用TOML解析器提取包约束,并以pip可以识别的格式发出它们。例如,如果您的pip文件只包含简单的字符串版本说明符,那么
我想用pip安装用Pipfile编写的包,而不创建virutalenv
# (do something to create some-file)
RUN pip install (some-file)
怎么做?最终pip应该能够自己做到这一点,至少他们是这么说的。目前,这还没有实施 目前,pip文件是TOML文件,因此您可以使用TOML解析器提取包约束,并以pip可以识别的格式发出它们。例如,如果您的pip文件只包含简单的字符串版本说明符,那么这个小脚本将写出一个
requirements.txt
文件,然后您可以将该文件传递到pip安装-r
:
import sys
import toml
with open(sys.argv[1]) as f:
result = toml.load(f)
for package, constraint in result['packages'].items():
if constraint == '*':
print(package)
else:
print(f'{package} {constraint}')
如果PIP文件包含更复杂的结构,则必须编辑此代码来解释它们
一个可以考虑的适合于DoCKER容器的替代方案是使用
pipenv install --system
pipenv --rm
但是,严格来说,如果不创建VirtualNV,这并不能实现您的既定目标。与使用venv一样,只需使用本地安装pip。确保系统中有pip可用,然后直接运行它。。。请注意,pip不会为您安装系统的依赖项。我想安装用PIPFile编写的软件包PIPFile只是“requirements.txt”的替代品。因此,我认为您可以使用类似的方法
运行pip安装-p
。很抱歉,目前pip
还不支持pipfile
。您必须使用pipenv安装
我不确定是否需要删除虚拟环境。在这个阶段,似乎没有创建任何项目<代码>尚未为此项目创建virtualenv代码>嗯,我似乎记得当我尝试它的时候,一个virtualenv被创建了。也许这在最近的版本中有所改变。我将重新设置它,并尝试在编辑中进行澄清。