有什么方法可以使用'pip | easyinstall'+'*.pyc only'+'flat namespace packges'+virtualenv来部署Python包?

2024-10-01 15:41:11 发布

您现在位置:Python中文网/ 问答频道 /正文

目标:

  • 利用现代Python打包工具集将专有包部署/安装到某些virtualenv中。在
  • 安装的软件包应该只包含编译的*.pyc(或*.pyo),而不包含源文件。在
  • 有两个包,一个供应商名称(这里我们为我们的工作室选择dgmx)用作包名。因此,已安装的软件包将类似于dgmx/alucarddgmx/bansheedgmx/carmilla。。。在
  • 已安装软件包的文件层次结构应类似于python setup.py install --single-version-externally-managed或{}的文件层次结构。参考How come I can't get the exactly result to *pip install* by manually *python setup.py install*?

简言之:

我喜欢只通过编译*.pyc(或*.pyo)文件将专有名称空间包部署到virtualenv中,其中文件/目录层次结构只反映了污染的名称空间系统路径很多人哦,鸡蛋路径。在

我尝试过:

  1. python setup.py bdist_egg --exclude-source-files然后easy_install ooxx.egg
    • 污染”搜索路径“对于每个命名空间包。在
  2. python setup.py install --single-version-externally-managed
    • 不只是*.pyc。在
    • “安装需要”被忽略!在
    • 需要手动放置哦,鸡蛋-信息/已安装-文件.txt使卸载正常工作。在
  3. pip install .的位置设置.py".
    • 不只是*.pyc。在
  4. pysetup install .的位置设置.py".
    • 不只是*.pyc。在

更新

我目前的想法是遵循方法2。在

  • python setup.py egg_info --egg-base .获取需要.txt在
  • python setup.py install --single-version-externally-managed --record installed-files.txt安装-文件.txt在
  • 通过“手动安装其他依赖项”需要.txt““
  • 通过“已安装”手动删除已安装的源文件(*.py-文件.txt““
  • 从“已安装”中删除源文件(*.py-文件.txt“并将其投入部署”哦,鸡蛋-信息/已安装-文件.txt““

参考文献:

  1. Migrating to pip+virtualenv from setuptools
  2. installing only .pyc (python compiled) with setuptools
  3. Can I deploy Python .pyc files only to Google App Engine?
  4. How come I can't get the exactly result to *pip install* by manually *python setup.py install*?

Tags: installpip文件topytxtvirtualenv层次结构
1条回答
网友
1楼 · 发布于 2024-10-01 15:41:11

一些技巧可能会有所帮助:

将源代码编译成.pyc,压缩成一个.zip文件。在

用一个简单的模块编写一个新模块,它所做的只是将.zip添加到sys.path中。在

所以当您导入这个模块时,.zip就在路径中。您只需在setup.py中的自定义步骤中,将zip文件复制到适当的位置。在

相关问题 更多 >

    热门问题