标签: python-pex

创建一个小瓶子网站的PEX

我正在尝试创建一个简单的3页烧瓶网站的PEX文件.该网站在python3上使用Gunicorn,客户希望将网站编译为封装pex文件.

pex -r zb1/requirements.txt -e zb1/run -o zb1.pex

也试过了

pex -r zb1/requirements.txt -m zb1:run -o zb1.pex

当我运行该命令时,它编译得很好,但问题是当我尝试运行pex文件时.

c:~ c$ ./zb1.pex 
Traceback (most recent call last):
  File ".bootstrap/_pex/pex.py", line 326, in execute
  File ".bootstrap/_pex/pex.py", line 258, in _wrap_coverage
  File ".bootstrap/_pex/pex.py", line 290, in _wrap_profiling
  File ".bootstrap/_pex/pex.py", line 369, in _execute
  File ".bootstrap/_pex/pex.py", line 427, in execute_entry
  File ".bootstrap/_pex/pex.py", line 432, in execute_module
  File "/usr/local/Cellar/python3/3.5.2/Frameworks/Python.framework/Versions/3.5/lib/python3.5/runpy.py", line 192, in run_module
    mod_name, mod_spec, code = _get_module_details(mod_name)
  File "/usr/local/Cellar/python3/3.5.2/Frameworks/Python.framework/Versions/3.5/lib/python3.5/runpy.py", line 127, in _get_module_details …
Run Code Online (Sandbox Code Playgroud)

python python-pex

9
推荐指数
1
解决办法
863
查看次数

用pex打包本地模块

我正在尝试将我的本地模块与pex打包在一起,但似乎无法解决。

我创建了一个简单的项目:

? python --version
Python 2.7.10
? pex --version
pex 1.1.15
? tree .
.
??? bla
?   ??? __init__.py
?   ??? main.py
??? setup.py
Run Code Online (Sandbox Code Playgroud)

bla/__init__.py

import main
Run Code Online (Sandbox Code Playgroud)

bla/main.py

if __name__ == '__main__':
   print 'yo'
Run Code Online (Sandbox Code Playgroud)

在我看来,这似乎是最简单的项目。

? pex -v . -o v.pex --disable-cache
Traceback (most recent call last):
  File "/Users/Charly/repos/load_tester/venv/bin/pex", line 11, in <module>
   sys.exit(main())
 File "/Users/Charly/repos/load_tester/venv/lib/python2.7/site-packages/pex/bin/pex.py", line 540, in main
    pex_builder = build_pex(reqs, options, resolver_options_builder)
 File "/Users/Charly/repos/load_tester/venv/lib/python2.7/site-packages/pex/bin/pex.py", line 475, in build_pex
    resolvables = [Resolvable.get(arg, resolver_option_builder) for arg in …
Run Code Online (Sandbox Code Playgroud)

python distutils build setuptools python-pex

5
推荐指数
1
解决办法
2018
查看次数

将 pex 与诗歌一起使用 pyproject.toml

我正在尝试弄清楚如何使用 pex 对 python 项目进行自动化(ish)部署。我目前有以下流程:

$ poetry run pip freeze > requirements.txt 
manually remove this-project line from requirements.txt
$ poetry run pex -r requirements.txt -o service.pex -e api:start --sources-directory=.
$ ./service.pex
Run Code Online (Sandbox Code Playgroud)

第二步的原因是,this-project如果我将该行留在其中,pex 将尝试在线查找。我理解这一点,但pip freeze确实将该行插入到requirements.txt. 我想知道的是:pex可以使用pyproject.toml还是poetry.lock直接使用?当前的解决方案是一种烦人的解决方案。

我看过2019 年教程,但它不起作用,因为当前版本的 pex 无法识别--project为选项。

任何其他建议将不胜感激。

deployment python-pex python-poetry

3
推荐指数
1
解决办法
1378
查看次数