gpt4 book ai didi

python - 使用 'pip | easyinstall' + '*.pyc only' + 'flat namespace packges' + virtualenv 部署 Python 包的任何方法?

转载 作者:太空狗 更新时间:2023-10-30 01:39:08 25 4
gpt4 key购买 nike

目标:

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

问题简述:

我喜欢仅通过编译的 *.pyc(或 *.pyo)文件将专有命名空间包部署到 virtualenv 中,其中文件/目录层次结构仅反射(reflect)具有污染 sys.path 的命名空间通过很多 ooxx.egg 路径。

我试过的东西:

  1. python setup.py bdist_egg --exclude-source-files 然后是 easy_install ooxx.egg
    • 为每个命名空间包污染“sys.path”。
  2. python setup.py install --single-version-externally-managed
    • 不仅仅是*.pyc。
    • “install_requires”被忽略了!
    • 需要手动放置 ooxx.egg-info/installed-files.txt 才能使卸载正常工作。
  3. pip install . 在“setup.py”的位置。
    • 不仅仅是*.pyc。
  4. pysetup install . 在“setup.py”的位置。
    • 不仅仅是*.pyc。

更新:

我目前的想法是按照方法2。

  • python setup.py egg_info --egg-base . # 获取 requires.txt
  • python setup.py install --single-version-externally-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”

引用资料:

  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*?

最佳答案

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

将您的源代码编译成 .pyc,将它们压缩到一个 .zip 文件中。

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

因此,当您导入此模块时,.zip 位于路径中。您所要做的就是在 setup.py 中的自定义步骤中,将 zip 文件复制到适当的位置。

关于python - 使用 'pip | easyinstall' + '*.pyc only' + 'flat namespace packges' + virtualenv 部署 Python 包的任何方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10186686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com