По просьбе моего клиента мне нужно распространять закрытую исходную программу python только с * .pyc-файлами и запускать через pypy.PyPy не находит модуль, состоящий только из * .pyc-файлов
Программа имеет подкаталог, в котором различные модули импортируются:
start.pyc
backends/
server.pyc
...
первую линию импорта backends.server start.py, и он работает, когда работает в стандартном режиме «питон». Но если я раздеться все * .py файлов, и попробуйте запустить
(pypy)[email protected]:~ python start.pyc
Traceback (most recent call last):
File "./start.py", line 4, in <module>
ImportError: No module named backends.server
Я получаю сообщение об ошибке говорящее модуля не с названием «движками» найдено, даже если подкаталог-х бэкэндов "есть, и сервер Файл .pyc есть.
Я помню, что для такого поведения был переключатель для pypy, но я больше не могу его найти. Любая помощь?
PS Это версия pypy/python, используемая нами для встроенной системы ARM.
Python 2.7.10 (c95650101a99, Sep 06 2016, 11:02:19)
[PyPy 5.4.1 with GCC 4.7.2 20120731 (prerelease)]
Файлы '.pyc' содержат байт-код CPython. PyPy имеет собственное внутреннее представление кода, что делает (насколько мне известно) '.pyc' файлы, несовместимые с PyPy. Та же проблема задается в этом списке рассылки: https://mail.python.org/pipermail/pypy-dev/2011-May/007395.html –
Это кажется странным, потому что из PyPy venv я могу запускать 'python -m compileall , 'и восстановить все * .pyc моих проектов. Я думаю, что PyPy создается с помощью Pypy-совместимого способа. Более того, если я выполняю pyc-файл с pypy, он дает мне вышеприведенную ошибку, которая имеет смысл и согласован с тем, что должно быть в pyc (то есть в импорте) – zontar