我的RHEL服务器只能访问我的IT部门预先批准的包。我正在开发一个将在此服务器上托管的Python应用程序。目前,我已经设法在不同的位置(/usr/local/bin)构建了最新版本的python。我可以创建虚拟环境来将它与系统的其余部分隔离开来。
现在,我需要在环境中使用pip安装包,以使应用程序正常工作。姜戈。由于IT已经禁用了所有对互联网的访问,我无法执行pip install package_name。嗯,我可以,但它试图从互联网上下载软件包,然后超时。当我下载django包的rpm并尝试在虚拟环境中安装它时,它失败了:
(envtest) [root@arlwebimgakp02 envtest]# rpm -ivh python3-django-1.7.2-1.fc22.noarch.rpm
error: Failed dependencies:
/usr/bin/python3 is needed by python3-django-1.7.2-1.fc22.noarch
python(abi) = 3.4 is needed by python3-django-1.7.2-1.fc22.noarch
python-django-bash-completion = 1.7.2-1.fc22 is needed by python3-django-1.7.2-1.fc22.noarch
python3 is needed by python3-django-1.7.2-1.fc22.noarch因此,看起来rpm安装是从python (2.6.6)的通用安装中寻找依赖项,而不是在虚拟环境中使用的单独编译的3.4.3。我能做到吗?我可以只在虚拟环境中安装rpm包吗?如果没有到服务器的互联网访问,我如何才能将我的python包安装到我的虚拟环境中?
发布于 2015-04-17 01:44:58
RPM是一个系统级的包管理器。它将检查其内部数据库中的依赖项。不检查可执行python是否存在,但检查包python是否存在。
你需要下载Django-1.8.tar.gz,复制到linux机器上
pip install Django-1.8.tar.gz发布于 2015-04-17 01:50:29
您需要让您的IT部门相信python包是一个好东西,就像rpm一样。然后,您可以通过直接从pypi.python.org下载或使用pip来构建所需包的目录,如下所示:
pip install --download=/path/to/pypi/repo django然后,在您的虚拟环境中执行以下操作
pip install --no-index --find-links=/path/to/pypi/repo django因为您的IT部门是乐于助人和开明的,您甚至可以说服他们安装devpi之类的pypi缓存,使您的部署到您的许多同事变得更加容易。
发布于 2020-03-25 02:23:22
首先,您不能在virtualenv中安装RPM。virtualenv只影响由pip安装的Python包。
您可以使用另一台可以访问internet的计算机来下载所需的Python包,并将其上传到服务器上进行安装。您可以指定包的Python版本,甚至可以使用需求文件(如果有)。例如,如果您想要为Python 3.5安装最新版本的Django,您可以执行以下操作:
# On your machine with internet access
pip download --python-version "3.5" --only-binary=:all: Django这将下载一系列.whl文件。将所有这些上传到您的服务器,然后在服务器上的virtualenv中运行以下命令:
pip install *.whlhttps://stackoverflow.com/questions/29681618
复制相似问题