目标:
>利用现代Python打包工具集将专有包部署/安装到一些virtualenv中.
>安装的软件包应包含仅在没有源文件的情况下编译的* .pyc(或* .pyo).
>有几个软件包,供应商名称(这里我们为工作室选择dgmx)用作软件包名称.因此,安装的软件包将类似于dgmx / alucard,dgmx / banshee,dgmx / carmilla,……
>已安装软件包的文件层次结构应该类似于python setup.py install –single-version-external-managed或pip install.参见How come I can’t get the exactly result to *pip install* by manually *python setup.py install*?
问题简而言之:
我喜欢通过仅编译的* .pyc(或* .pyo)文件将专有命名空间包部署到virtualenv中,其中文件/目录层次结构仅反映了由许多ooxx.egg路径污染sys.path的命名空间.
我试过的东西:
> python setup.py bdist_egg –exclude-source-files然后easy_install ooxx.egg.
>为每个命名空间包污染“sys.path”.
> python setup.py install –single-version-external-managed.
>不仅仅是* .pyc.
>“install_requires”被忽略了!
>需要手动放置ooxx.egg-info / installed-files.txt以使卸载正常工作.
> pip安装.在“setup.py”的位置.
>不仅仅是* .pyc.
> pysetup安装.在“setup.py”的位置.
>不仅仅是* .pyc.
更新:
我目前的想法是遵循方法2.
> python setup.py egg_info –egg-base. #get requires.txt
> python setup.py install –single-version-external-managed –record installed-files.txt #get installed-files.txt
>通过“requires.txt”手动安装其他依赖项
>通过“installed-files.txt”手动删除已安装的源文件(* .py)
>从“installed-files.txt”中删除源文件(* .py)并将其放入已部署的“ooxx.egg-info / installed-files.txt”
参考文献: