我在Python工作,并决定专注于学习Pyramid作为我的主要框架。问题是我所做的工作是在没有外部连接的私有LAN上完成的,我找不到任何资源来获取在没有访问开放互联网的情况下在系统上设置虚拟环境和金字塔所需的所有软件包。
任何人可能拥有的任何想法或资源都将不胜感激。
由于
答案 0 :(得分:2)
您好,感谢您提出的两个选项,试图回答这个问题。直到最近我还没有回到这个问题,此时我读了这些答案并尝试了其中一个,然后才遇到最佳解决方案。
鉴于我正在使用的所有其他内容都是从源代码完成的,我尝试过(感谢我以前无法找到源代码的链接)并且我担心因为依赖项的数量而无法以这种方式安装金字塔它需要与它一起安装。然而,这确实让我能够确切地看到依赖包是什么。
我准备尝试使用virtualenv可重定位标记的另一个选项但在我之前我遇到了pip中的一个选项,它是作为virtualenv的一部分安装的,它允许您捆绑包并在以后安装它们而不需要网络连接。这最终成为我尝试过的解决方案并且有效。至少大部分时间。
基本问题的解决方案是这样的。
1)将目录更改为virtualenv目录
[user home]$ cd /path/to/virualenv/directory
2)在网络连接系统上键入以下内容,它会将金字塔文件和依赖项下载到捆绑文件中
[virtualenv_directory]$ bin/pip bundle <nameOfBundle>.pybundle pyramid
3)如上所述移动到目标系统并cd到目标目录,并使用以下命令安装
[virtualenv_directory]$ bin/pip install <nameOfBundle>.pybundle
在这种情况下,它将安装金字塔文件和依赖项。
答案 1 :(得分:1)
他们可以在package page上下载源代码 - 你不能只下载源代码然后将它带到你的环境中的USB驱动器上吗?至于其他必需的软件包,通过pip安装它应该相当容易,看看依赖项是什么 - 然后你可以把所有这些都带进来。实际上,依赖项都列在软件包页面上。
一般来说,如果你正在使用一个封闭的网络,你将不得不以某种方式带来它,对吧?只要你这样做就可以了。
答案 2 :(得分:1)
最简单的方法是将它安装在网络外部机器上的virtualenv中,使用与在封闭网络中使用的相同版本的Python。然后使用virtualenvs --relocatable flag使环境可重定位,在将其复制到您可以引入封闭网络的物理媒体之前。到目前为止,最困难的部分是如果Pyramid或其任何依赖项已编译扩展,因为编译的二进制文件不太可能是可移植的。
如果他们这样做,最好的替代方法是在外部计算机上使用ClueReleaseManager之类的东西,并使用它作为主要PyPI镜像安装Pyramid(有关如何设置它的说明在链接页面上)。这会将所有源包下拉到一个目录中,然后您可以将其带入您的封闭环境进行编译。这样可以省去手动下载所有依赖项的麻烦,但设置成本有点高。