Вставить Python3 без стандартной библиотеки

EDIT: я задал здесь противоположный вопрос: как встраивать Python3 со стандартной библиотекой

Здесь предлагается решение для Python2: возможно ли внедрить питон без стандартной библиотеки?

Однако Python3 терпит неудачу в Py_Initialize(); с:

 Fatal Python error: Py_Initialize: unable to load the file system codec ImportError: No module named 'encodings' 

Это имеет смысл, потому что исходные файлы py3 по умолчанию являются utf-8. Похоже, что для разбора исходных файлов py3 требуется внешний двоичный файл.

Так что делать?

Кажется, мне нужно найти двоичный код encodings в моей системе Python, скопировать это в мое дерево проектов и, возможно, установить некоторую переменную среды PYTHONPATH (?). Так что мой libpython.dylib может ее найти.

Можно ли это избежать? А если нет, может кто-нибудь уточнить шаги, которые мне нужно предпринять? Будут ли еще икоты?


ПРИМЕЧАНИЕ. Для потомков именно так я получил автономный libpython.dylib, связанный с моим проектом в OSX:

Сначала я размещаю свою систему в библиотеке Python: /usr/local/Frameworks/Python.framework/Versions/3.4/Python (в моем случае она была установлена ​​с доморощенным).

Сейчас я:

  • скопируйте .dylib в мою папку проекта, создав ./Libs/libpython3.4.1_OSX.dylib

  • Перейти к build settings -> linking и установка other linker flags на -lpython3.4.1_OSX

На данный момент он будет работать. Однако, если вы знаете, что попытаетесь создать его на новой установке OSX, он потерпит неудачу. Это потому что:

 $ otool -D ./libpython3.4.1_OSX.dylib ./libpython3.4.1_OSX.dylib: /usr/local/Frameworks/Python.framework/Versions/3.4/Python 

Дилиб все еще держится за свое старое местоположение. Для меня действительно странно, что .dylib содержит ссылку на его местоположение, поскольку все, что его использует, должно знать, где именно, чтобы вызвать его в первую очередь!

Мы можем исправить это с помощью:

 $ install_name_tool -id @rpath/libpython3.4.1_OSX.dylib libpython3.4.1_OSX.dylib 

Но тогда и в нашем проекте Xcode мы должны:

  • Перейдите в build phases . Добавьте шаг копий copy files который копирует libpython3.4.1_OSX.dylib в Frameworks (это подходящее место для его размещения).
  • Перейти к build settings -> linking runpath search paths и установить runpath search paths к @executable_path/../Frameworks/libpython3.4.1_OSX.dylib

Наконец, мне нужно перейти в edit scheme -> run -> arguments -> environment variables и добавить PYTHONHOME со значением ../Frameworks

Я подозреваю, что для выполнения этой работы мне также потребуется добавить PYTHONPATH

Ссылки:
https://mikeash.com/pyblog/friday-qa-2009-11-06-linking-and-install-names.html
http://qin.laya.com/tech_coding_help/dylib_linking.html
https://github.com/conda/conda-build/issues/279#issuecomment-67241554
Не могли бы вы помочь мне понять, как работают библиотеки Mach-O в Mac Os X?
http://nshipster.com/launch-arguments-and-environment-variables/

One Solution collect form web for “Вставить Python3 без стандартной библиотеки”

Я попытался это сделать, и потребуется больше времени, чем вы хотите потратить на внедрение Python 3 без библиотеки Python.

Некоторые модули в библиотеке необходимы для запуска Python 3, и для этого потребуется много изменений для работы без них.

  • Как использовать assertJSONEqual от Django для проверки ответа на возвращаемый запрос JsonResponse
  • python Как получить iobytes выделенную длину памяти?
  • Pythonwin - функция печати не работает
  • os.exec в Windows
  • Создайте virtualenv как с python2, так и с python3
  • Как сделать таблицу на Python 3.5.2?
  • Печать экранированного Юникода в Python
  • Сделать переход на Python 3 - Лучшие практики
  •  
    Interesting Posts for Van-Lav

    Есть ли набор инструментов, который предоставит веб-интерфейс (xmlrpc, REST, что угодно) на удаленные серверы IMAP?

    Как приостановить и перезапустить анимацию в VTK

    Как установить lxml в Python 3.4 на компьютере с Windows

    AppEngine – Когда использовать родительские отношения?

    Django 1.2: проблема входа (параметр GET: следующий)

    Как мне получить cx_Oracle для работы с 64-разрядными версиями Itanium Windows?

    Pandas откатывает OLS

    Значение внешнего ключа в Django REST Framework

    Почему простое эхо в подпроцессе не работает

    Как заставить PyDev отображать ошибки pylint в редакторе?

    регулярное выражение python для разделения на определенные шаблоны с пропущенными шаблонами

    эквивалент lua для numpy и scipy?

    «Проверка сертификата SSL не удалась» с помощью pip для установки пакетов

    Как я могу получить ключевое имя записи в Model () для GAE для Python?

    Python, проверяющий все возможные пути в матрице, от одной точки к другой

    Python - лучший язык программирования в мире.