包装要求_and_本地模块与PEX

toa*_*oza 5 python packaging

我正在尝试构建一个可分发的.pex文件,用于通过PEX分发我的python应用程序(Flask).

如果我有以下设置:

.
|_ requirements.txt
|_ app.py
|_ module1
|_ module2
Run Code Online (Sandbox Code Playgroud)

我如何用pex打包?

我可以安装我的要求并使用以下命令运行app.py:

pex -r requirements.txt -- app.py
Run Code Online (Sandbox Code Playgroud)

但是我如何在pex发行版中包含我的本地模块呢?

我试过了:

pex -r requirements.txt -m module1 module2 -- app.py 
Run Code Online (Sandbox Code Playgroud)

并且:

pex module1 module2 -r requirements.txt -- app.py
Run Code Online (Sandbox Code Playgroud)

但得到错误:

无法满足module1的所有要求

如果我完全遗漏了我的本地模块:

 pex  -r requirements.txt -- ./app.py
Run Code Online (Sandbox Code Playgroud)

我得到不能满足的要求(在我的requirements.txt字段中的东西)

我错过了一些明显的东西吗?这对于PEX来说是不正确的用例吗?

Lar*_*son -1

我也有同样的麻烦。我能找到的唯一有效的 pex 示例是 pex 本身。从https://github.com/pantsbuild/pex/blob/master/tox.ini中,我推断除了模块之外,还应该在命令行上枚举需求。

这个化身对我有用:

pex $(cat 要求.txt) 。-e myapp.main:main -o dist/myapp.pex