将Python virtualenv移植到另一个系统

2024-09-29 02:22:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用了很多python包,比如numpy、瓶颈、h5py。。。为了我在电脑上的日常工作。因为我是这台机器的根用户,所以安装这些软件包没有问题。不过,我想使用我的“环境”不同的包也在一个服务器机器上,我只有一个正常的用户帐户。所以我考虑在我的机器上创建一个虚拟环境(使用virtualenv),在那里安装所有需要的包。然后我只需将整个文件夹复制到服务器上,就可以运行其中的所有内容了?在

我的机器使用Fedora19,而服务器使用的是Ubuntu。这是个问题吗?我找不到任何关于如何将这种虚拟环境移动到另一个系统的信息。我想首先在我的机器上创建虚拟环境的原因是服务器上缺少很多工具,比如python dev,所以我不能编译numpy。在

我研究了Anaconda和热情的Python发行版,但是它们没有包括我需要的几个包。还有,这个问题应该有一个完全“开放”的方式?在

将虚拟环境移动到服务器失败,因为它正在抱怨导入包时丢失了一些文件。这可能并不奇怪。。。在


Tags: 用户numpy服务器文件夹机器内容环境virtualenv
2条回答

在为Python36手动编译VTK和PySide2之后,我还发现自己违反了virtualenv规则。在

就在今天,我把我的virtualenv转移到了另一个系统上,为了让事情变得更简单,我给了它与上一个系统完全相同的路径。 但是,在我的新系统上,Python的路径并不相同。幸运的是,我能够通过改变一个“原始”来改变virtualenv正在寻找的位置-前缀.txt'文件位于[VIRTUALENV]/Lib中。在

virtualenv需要的基本Python路径存储在:[VIRTUALENV]/Lib/orig-prefix.txt

如果我没记错的话,virtualenv本身的路径嵌入在多个文件中。因此,在需要将virtualenv重新定位到不同路径的情况下,我只需重新创建它并复制除了[virtualenv]/Scripts目录之外的所有内容。在

这可能不是virtualenv的使用方式,但它确实提供了一种解决方法。另外,请注意,我是在Windows环境中执行此操作的。在

你不应该移动你的virtualenv,因为它本质上是链接到你的系统python上的,二进制文件在其他机器上不起作用。在

但是。。。您可以导出已安装软件包的列表,并通过requirements.txt文件将它们安装到另一个virtualenv中。在

基本上,我通常对我的大多数项目做的是:

# Generate a requirements file:
pip freeze > requirements.txt

在新机器上:

^{pr2}$

相关问题 更多 >