我正在尝试将python模块的执行转移到另一台机器上。该模块是随pip安装的软件包的一部分。我想自动将本地软件包安装到远程端(即,将软件包复制到VM,lambda或cloud函数等)。
通常我会pip install -t some_temp_folder mypkg
,然后将该临时文件夹的内容压缩到另一台计算机上。但这仅在mypkg
在联机目录中或包含setup.py的目录中时有效。在这种情况下,mypkg是从本地git仓库以可编辑模式安装的。
假设该软件包已经通过pip在本地安装,是否有办法告诉pip将安装“克隆”到目标文件夹(例如,从本地virtualenv到选定的目标文件夹)?我认为至少对于纯python软件包,这应该很简单。
pip install -t tempfolder mypkg
Collecting mypkg
ERROR: Could not find a version that satisfies the requirement mypkg (from versions: none)
ERROR: No matching distribution found for mypkg
但是,mypkg
已在本地可用(与pip -e
一起安装):
pip list | grep mypkg
mypkg 0.0.2a0 /home/user/src/mypkg/python3.6
我认为这有点循环,但是希望可以指示pip使用本地安装版本中的文件。我考虑过仅使用tar mypkg.__file__
,但使用pip会有所改善,因为它也包括依赖项。