我正在尝试在只能连接外部硬盘的服务器上制作一个带有pip搜索功能的完整本地Pypi存储库镜像。要明确的是,我不想要一个简单的缓存系统,服务器在一个完全封闭的网络中连接到其他机器,根本无法访问互联网。
到目前为止,我所做的是用bandersnatch倾倒每个pypi包,我可以在它前面用一个简单的超文本传输协议服务器进行pip安装。我还检索了pypi遗留源代码,并让它在没有任何python包的情况下工作。我现在遇到的问题是将双方联系起来,我甚至不确定这是否可以这样做。
我还测试了pypiserver。它本可以完成我想要的,但速度太慢,最终导致pip搜索超时(看起来它不是为处理那么多包而构建的)。
最后,我看了一下devpi。似乎做的很好,我想做的,但我正在寻找一种方法,导入我的bandersnatch转储到它容易。看起来我无法基于本地目录创建索引。
谢谢你的回复。
我不妨提供一个适当的答案,说明我们是如何让DevPi
在我们的环境中非常好地工作的:
DevPi
需要Python 3!因此,请确保安装了Python 3版本的pip
。利用这一点:
pip install -U devpi
(可能是root)应该可以做到这一点。
默认情况下,DevPi使用端口3141。如果您安装了以下内容
firewall-cmd --zone=public --add-port=3141/tcp --permanent
firewall-cmd --reload
或系统上的等效命令。
DevPi
将使用现成的PyPi
。我们还希望能够“覆盖”我们自己只在组织内部提供的包。对于本地nabCERT包,需要一个内部索引。好东西,因为这一个本身可以使用PyPi作为后备!
选择要工作的devpi服务器——可能是你所在的服务器
devpi use http://localhost:3141
现在创建一个用户,该用户可以添加和管理内部包并使用它们登录
devpi user -c myuser password=mypassword
devpi login myuser --password mypassword
现在创建我们的内部索引来保存本地包,同时确保它将使用PyPi作为“后备方案”
devpi index -c myindex bases=/root/pypi volatile=True
启动它
Devpi-server--host=0.0.0.0--port=3141--serverdir=/var/www/pypi
尝试安装一个软件包
pip安装-ihttp://localhost:3141/root/pypi/辛普莱克森
如果出现问题,请检查日志,在我们的例子中,它们位于/var/www/pypi/。xproc/devpi服务器/xprocess。日志
此时,如果成功地遵循了上述所有设置,您应该能够打开一个web浏览器,并使用
http://localhost:3141/myuser/myindex
这各不相同。我们使用System d
,所以我创建了一个文件/usr/lib/system/devpi.service
[Unit]
Requires=network-online.target
After=network-online.target
[Service]
EnvironmentFile=-/etc/sysconfig/devpi
Type=forking
PIDFile=/var/www/pypi/.xproc/devpi-server/xprocess.PID
Restart=always
ExecStart=/bin/devpi-server --host=0.0.0.0 --port 3141 --serverdir /var/www/pypi --start
ExecStop=/bin/devpi-server --host=0.0.0.0 --port 3141 --serverdir /var/www/pypi --stop
User=root
[Install]
WantedBy=multi-user.target
保存文件并通知system d。
systemctl daemon-reload
systemctl enable devpi
要将客户端的pip
指向使用新的DevPi
存储库,请使用以下内容创建一个/etc/pip.conf
文件
[global]
trusted-host = <server IP or FQDN>
[install]
index-url = http://<server IP or FQDN>:3141/myuser/myindex/+simple/
[search]
index = http://<server IP or FQDN>:3141/myuser/myindex/
问题内容: 我们有几个自己的python软件包,并希望使用简单的界面(例如https://pypi.python.org/simple/)为它们创建本地pypi存储库。 由于安全原因,我只想为本地创建一个没有任何镜像的存储库,并将其置于apache的控制之下 该命令外观必须初始化一次,需要进行镜像。 如何基于本地python包生成PyPi简单索引。 还有其他简单的脚本吗? 问题答案: 由于您要求在
我有一个SpringBoot应用程序,它实现了一个Websocket服务器(SockJS)。 我可以在本地网络上将客户端连接到该服务器,只要托管该应用程序的Ubuntu机器可以访问互联网。 2016-10-27 11:22:20.802调试9390---[nio-8085-exec-9]o.a.coyote.http11.org.apache.tomcat.util.net.NioEndpoint
pypi 镜像每 5 分钟同步一次。 临时使用 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package 注意,simple 不能少, 是 https 而不是 http 设为默认 升级 pip 到最新的版本 (>=10.0.0) 后进行配置: pip install pip -U pip config set glo
警告 PyPI 源已暂时移除并重定向到 TUNA PyPI,详见 PyPI 镜像变更通知。 地址 https://mirrors.ustc.edu.cn/pypi/ 说明 PyPI(pip) 软件源 注意 使用说明 临时使用 pip install -i https://mirrors.ustc.edu.cn/pypi/web/simple package 设为默认 升级 pip 到最新的版本
我有一个Wifi微控制器ESP8266,它也有一个接入点。我参考了其他谈论以编程方式连接到接入点的博客,并尝试了两种方式 > 使用暴露的标准APIS wifiManager.enable网络(netId, true); wifiManager.save配置(); wifiManager.reconnect(); 使用带有@hide的API Wifi经理。连接(netId、ActionListene
问题内容: 我有一个项目,必须将其部署到无法连接到Internet的客户端Windows系统。我目前在D:\ NODE中有一个文件夹,其中包含node.exe和npm.cmd以及一个node_modules文件夹。为了能够从命令行运行节点,我将D:\ NODE添加到PATH变量中。 我可以将大多数模块本地安装在项目的node_modules内部。但是,只有一个-节点窗口-需要全局安装才能运行。 按