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

时间:2019-05-13 14:09:42

标签: python anaconda virtual-environment

我有两台机器,其中一台无法访问互联网。我想使用anaconda安装模块,并将其从另一台可以访问Internet的计算机复制到脱机计算机。

我尝试查找依赖项并安装tar。手动一个接一个地发送文件并将其发送到离线计算机,但这非常耗时。

最简单的方法是什么? miniconda有用吗?

P.S:我忘了提到我在两台机器上都使用了蟒蛇。所以我想我需要创建一个环境,安装软件包,然后将其导出到脱机计算机。还有其他方法可以将许多软件包安装到脱机组合中。来自在线计算机中的副本<dir>

编辑:我尝试了conda install --file C:\Users\myName\Desktop\OfflineInstall\packagelist.txt --channel file://C:\Users\myName\Desktop\OfflineInstall\pkgs2,但离线计算机仍尝试连接互联网。我还使用了--no-deps

Edit2:对于那些坚持相同问题的人,我使用conda install --file C:\Users\myName\Desktop\OfflineInstall\packagelist.txt --channel file:///C:\Users\myName\Desktop\OfflineInstall\pkgs2 --override-channels解决了,棘手的方法是file:///前缀。您需要输入///。另外请记住放置--override-channels标志以防止连接到默认频道。

2 个答案:

答案 0 :(得分:1)

听起来 Conda-pack 正是您要找的。

安装:

$ conda install conda-pack

在源机器上:

# Pack environment my_env into my_env.tar.gz
$ conda pack -n my_env

在目标机器上:

# Unpack environment into directory `my_env`
$ mkdir -p my_env
$ tar -xzf my_env.tar.gz -C my_env

# Use python without activating or fixing the prefixes. Most python
# libraries will work fine, but things that require prefix cleanups
# will fail.
$ ./my_env/bin/python

# Activate the environment. This adds `my_env/bin` to your path
$ source my_env/bin/activate

# Run python from in the environment
(my_env) $ python

# Cleanup prefixes from in the active environment.
# Note that this command can also be run without activating the environment
# as long as some version of python is already installed on the machine.
(my_env) $ conda-unpack

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

答案 1 :(得分:0)

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

首先制作一个.txt文件,其中包含您所有的python库。现在,您可以将此.txt文件传递到要在其中安装该解决方案的任何计算机上,然后发出以下命令:

pip install -r packages.txt

“ packages”是您的.txt文件的名称。希望这可以帮助!

使用Conda编辑:

while read requirement; do conda install --yes $requirement; done < requirements.txt