PypiWeb描述
pypiweb的Python项目详细描述
它是pypi服务器的一个分支(https://github.com/pypiserver/pypiserver)
添加接口pypi web:http//<;my ip>;/pypi并添加管理模板
对于安装,使用:https://github.com/pypiserver/pypiserver并替换pypi server命令 通过PypiWeb
安装
pip install pypiweb
或
git clone https://github.com/fraoustin/pypiweb.git cd pypiweb python setup.py install
远程从源上载包
而不是直接将包复制到服务器的文件夹中, 您还可以使用python setup.py upload命令远程上载它们。 目前只支持密码保护的上传!
首先确保安装了passlib模块, 解析由指定的apachehtpasswd文件所需的 -p,密码选项(请参阅下一步):
pip install passlib
使用至少一个用户/密码对创建apachehtpasswd文件 使用此命令(系统将提示您输入密码):
htpasswd -sc .htaccess <some_username>
提示
请阅读此问题,以便在windows下运行htpasswdcmd:
或者如果你有内部服务的假密码,你可以使用这个 公共服务:
即使上传也可以禁用身份验证。 要避免懒惰的安全决策,请阅读-P和-a选项的帮助。
您只需使用-p选项重新启动服务器一次 (但用户/密码对稍后可以动态添加或更新):
./pypiweb -p 8080 -P .htaccess ~/packages &
您需要更改模板:
./pypiweb -p 8080 -P .htaccess --add-template mytemplatedir ~/packages &
在客户端,编辑或创建具有类似内容的~/.pypirc文件:
[distutils] index-servers = pypi local [pypi] username:<your_pypi_username> password:<your_pypi_passwd> [local] repository: http://localhost:8080 username: <some_username> password: <some_passwd>
然后从您希望上载的python项目的目录中, 发出此命令:
python setup.py sdist upload -r local
提示
- 为了避免将密码以明文形式存储在磁盘上,您可以:
使用带有-r选项的register命令,如下所示:
python setup.py sdist register -r local upload -r local
使用twine库 把程序分成两步。
客户端配置
总是在命令行上指定pypi url有点 麻烦。因为pypiweb将pip/easy_安装重定向到 pypi.python.org索引如果它没有请求的包,那么它是 最好将它们配置为始终使用本地pypi索引。
pip
对于pip这可以通过设置环境变量来完成 pip_extra_index_url在您的.bashrc/中。profile/.zshrc:
export PIP_EXTRA_INDEX_URL=http://localhost:8080/simple/
或者将以下行添加到~/.pip/pip.conf:
[global] extra-index-url = http://localhost:8080/simple/
注意
如果您在没有https的远程url上安装了pypiweb 您将收到来自pip的“不可信”警告,敦促您附加 –受信任主机选项。也可以永久包含此选项 在配置文件或环境变量中。
使用不同的wsgi服务器
pypiweb附带它自己的瓶子副本。 可以在不同的wsgi服务器上使用瓶子。
pypiweb选择 以下是paste,cherrypy,twisted,wsgiref(python的一部分) 可用。
如果以上服务器都不符合您的需要,pypiserver也 公开一个api以获取内部wsgi应用程序,然后可以运行该应用程序 在任何你喜欢的wsgi服务器下。pypiweb.app包含以下内容 接口:
def app(root=None, redirect_to_fallback=True, fallback_url="http://pypi.python.org/simple")
并返回wsgi应用程序。root是包目录, redirect_to_fallback指定是否重定向到fallback_url何时 缺少一个包。
阿帕奇E/mod_wsgi
如果您将apache2与mod_wsgi一起使用,则以下配置文件 (由Thomas Waldmann提供)可以使用:
# An example pypiserver.wsgi for use with apache2 and mod_wsgi, edit as necessary. # # apache virtualhost configuration for mod_wsgi daemon mode: # Alias /robots.txt /srv/yoursite/htdocs/robots.txt # WSGIPassAuthorization On # WSGIScriptAlias / /srv/yoursite/cfg/pypiserver.wsgi # WSGIDaemonProcess pypisrv user=pypisrv group=pypisrv processes=1 threads=5 maximum-requests=500 umask=0007 display-name=wsgi-pypisrv inactivity-timeout=300 # WSGIProcessGroup pypisrv PACKAGES = "/srv/yoursite/packages" HTPASSWD = "/srv/yoursite/htpasswd" TEMPLATE = "/srv/yoursite/template" import pypiweb application = pypiweb.app(PACKAGES, redirect_to_fallback=True, password_file=HTPASSWD, add_template=TEMPLATE)
模板
为了简单地更改logo,创建一个目录template/static/images/并添加一个带有徽标的文件python-logo.png。
模板列表:
- packages.tpl,用于url http//<;my ip>;/包
- pypiindex.tpl,用于url http//<;我的IP>;/pypi/
- pypi pkg.tpl,用于url http//<;my ip>;/pypi/pkg
- 简单的URL http//<;我的IP>;/简单的
- url http//<;my ip>;的simple prefix.tpl;simple/前缀
- url http//<;my ip>;// 的welcome.tpl
- 静态/…用于URL http//<;我的IP>;/静态/…