我一直试图绕过python pex实用程序(https://pex.readthedocs.org/en/latest/),将一些应用程序捆绑到.pex文件中进行部署.
我的应用程序不够大,不需要twitters裤子构建工具,以及我有一些裤子无法解决的构建要求.但是,我尝试使用裤子工具构建系统,使用python_binary它导致pex文件,并将源加载到pex文件根目录.裤子中的BUILD文件接受sourcespython_binary 的属性,该属性可以是运行构建目录中的文件的glob,但是,裤子使用的是pex编程API而不是命令行实用程序.
问题是当我自己使用pex命令行实用程序时,它似乎想要分发(即使用setup.py等设置的文件夹......)并且想要将我的代码安装到.deps文件夹中pex文件,而不仅仅是将python文件复制到pex文件的根目录,就像裤子一样.
是否通过命令行pex工具复制文件(而不是安装包)?
从pex 1.0.0开始,没有直接整理文件和目录的工具,你必须按照你的建议使用setup.py,或者使用裤子(顺便说一下,不再是Twitter) - 独立的.
所以你有3条前进路径(你已经知道#1,但是为其他人拼写出来):
创建一个setup.py并将pex工具指向其目录
$ tree -h
.
??? [4.0K] lib
? ??? [ 0] __init__.py
? ??? [ 38] lib.py
? ??? [ 68] main.py
??? [ 76] setup.py
1 directory, 4 files
$ cat lib/lib.py
def func():
return 'func in lib'
$ cat lib/main.py
from .lib import func
if __name__ == '__main__':
print(func())
$ cat setup.py
from setuptools import setup
setup(
name='lib',
packages=['lib']
)
$ pex . -e lib.main -o lib.pex
$ ./lib.pex
func in lib
Run Code Online (Sandbox Code Playgroud)
注意:.pex命令行中的位是指向此dir的setup.py的位
作为裤子提交者,我可以说我们正在努力使裤子更容易和更容易使用,使得没有项目太小.你应该能够pip install pantsbuild.pants.backend.python && touch pants.ini在一个只有python的回购中运行,但我们今天不在那里.
| 归档时间: |
|
| 查看次数: |
2061 次 |
| 最近记录: |