如何在不同的机器之间复制Python模块

如何在不同的机器之间复制Python模块,python,anaconda,virtual-environment,Python,Anaconda,Virtual Environment,我有两台机器,其中一台不能上网。我想用anaconda安装模块,并将它们从另一台可以访问internet的计算机复制到脱机计算机 我试着寻找依赖项并安装tar。手动一个接一个地将文件发送到脱机机器,但这非常耗时 最简单的方法是什么?迷你康达有用吗 注:我忘了提到我在两台机器上都使用了蟒蛇。所以我想我需要创建一个环境,安装软件包,然后将其导出到脱机计算机。是否有其他方法可以将多个软件包安装到脱机组件。从联机计算机中的副本 编辑:我尝试了conda安装--文件C:\Users\myName\Desk

我有两台机器,其中一台不能上网。我想用anaconda安装模块,并将它们从另一台可以访问internet的计算机复制到脱机计算机

我试着寻找依赖项并安装tar。手动一个接一个地将文件发送到脱机机器,但这非常耗时

最简单的方法是什么?迷你康达有用吗

注:我忘了提到我在两台机器上都使用了蟒蛇。所以我想我需要创建一个环境,安装软件包,然后将其导出到脱机计算机。是否有其他方法可以将多个软件包安装到脱机组件。从联机计算机中的副本

编辑:我尝试了
conda安装--文件C:\Users\myName\Desktop\OfflineInstall\packagelist.txt--通道文件:://C:\Users\myName\Desktop\OfflineInstall\pkgs2
,但脱机机器仍试图连接internet。我还使用了
——无deps


Edit2:对于那些遇到同样问题的人,我使用
conda安装--文件C:\Users\myName\Desktop\OfflineInstall\packagelist.txt--通道解决了这个问题file:///C:\Users\myName\Desktop\OfflineInstall\pkgs2——覆盖频道
棘手的方法是
文件://
前缀。你需要把//。另外,请记住设置“覆盖频道”标志,以防止连接到默认频道。

前几天遇到了这个问题,实现非常简单

首先制作一个包含所有python库的.txt文件。现在,您只需将此.txt文件传递给希望安装解决方案的任何计算机,然后发出以下命令:

pip install -r packages.txt
其中“packages”是.txt文件的名称。希望这有帮助

使用Conda编辑:

while read requirement; do conda install --yes $requirement; done < requirements.txt
读取时的要求;是否安装conda——是$要求;完成
听起来这就是你要找的

安装:

$conda安装conda包
在源计算机上:

#将环境my_env打包到my_env.tar.gz中
$conda pack-我的环境
在目标计算机上:

#将环境解压缩到目录'my_env`
$mkdir-p我的环境
$tar-xzf my_env.tar.gz-C my_env
#在不激活或修复前缀的情况下使用python。大多数蟒蛇
#库可以很好地工作,但需要前缀清理
#将失败。
$./my_env/bin/python
#激活环境。这会将'my_env/bin'添加到您的路径中
$source my_env/bin/activate
#在环境中从运行python
(my_env)$python
#清除活动环境中的前缀。
#请注意,此命令也可以在不激活环境的情况下运行
#只要机器上已经安装了某种版本的python。
(my_env)$conda解包

需要注意的是,conda pack将占用整个环境。

听起来您可能需要创建一个environment.yml文件。这些包含您要安装的软件包列表,然后conda可以读取并为您安装这些软件包(按顺序对依赖项和版本进行排序)。使用另一台机器上的
pip freeze>requirements.txt
创建一个
requirement.txt
。创建一个virtualenv,在那里,
pip下载-r requirements.txt
,然后
pip安装-r requirements.txt——在目标机器中查找链接。显然,您还需要将
复制到目标机器:)Asker想知道如何使用anaconda,而不是pip。