Я проектирую графический интерфейс с помощью инструментария wxPython, что означает, что он написан на python2. Тем не менее, я хочу использовать python3 для фактического кода приложения. Как я могу назвать код python3 из графического интерфейса?Позвоните в код python3 из кода python2
ответ
Обсуждение через трубу или гнездо
Включить такие, Python 3 функции, как вы можете из
__future__
или использовать библиотеку какsix
писать код, который совместим с обоими.Не делайте этого.
Наконец, вы уверены, что не можете использовать wxPython в Python 3? В онлайн-документах ничего не говорится, что вы не можете.
Вы можете запустить код приложения как сценарий оболочки.
from subprocess import call
exit_code = call("python3 my_python_3_code.py", shell=True)
Вы также можете передать аргументы терминала, как обычно.
arg1 = "foo"
arg2 = "bar"
exit_code = call("python3 my_python_3_code.py " + arg1 + " " + arg2, shell=True)
Если вы хотите, чтобы собрать больше информации обратно из приложения вы можете вместо того, чтобы захватить стандартный вывод, как описано здесь: Capture subprocess output
Если вы хотите жидко общаться в обоих направлениях трубы или гнездо, вероятно, лучше.
'shell = True' не требуется.'subprocess.call()' ждет завершения скрипта - он повесит GUI. OP, вероятно, хочет запускать * несколько команд *, то есть процесс 'python3' должен запускаться один раз, а затем вы должны использовать другие методы IPC для pipe/socket, как это предлагается в ответе @ Marcin. Вот пример кода Gtk, который показывает, как читать вывод подпроцесса в приложении GUI (используя потоки или async.io)] (https://gist.github.com/zed/8a255e81eb87431c0e63). Вот [Пример кода Tkinter (async)] (https://gist.github.com/zed/9294978) и [с помощью потоков] (https://gist.github.com/zed/42324397516310c86288) – jfs
- 1. Как проверить синтаксис кода Python2 из Python3?
- 2. Преобразование python2 PIL в код python3
- 3. python3 datetime.timestamp в python2?
- 4. exec python2 vs python3
- 5. Преобразование string.decode ('utf8') из python2 в python3
- 6. карта в python2 против Python3
- 7. Перейти к python3 asyncio из python2 gevent
- 8. Handling карта функция python2 & Python3
- 9. py.test работает Python2 и Python3
- 10. Почему python3 вызывает библиотеки python2?
- 11. Посмотрите, будет ли скомпилирован код Python2 в Python3
- 12. Написание кросс-совместимый код python2/python3 в PyCharm
- 13. же код медленнее в Python3 по сравнению с python2
- 14. Проблемы с совместимостью python2 python3
- 15. Использование библиотеки python2 с python3
- 16. AM_PATH_PYTHON для python2 и python3
- 17. python2 vs python3 многопроцессорная разность?
- 18. Frozenset от python2 до python3
- 19. описательный HEX-значения в python2 и Python3
- 20. Python2 и Python3 как в окнах 10
- 21. Установка python3 в виртуальной среде python2
- 22. Различия в float в python2 и python3?
- 23. Импортировать некоторые модули python3 в Python2
- 24. Как запускать программы в python2 и python3
- 25. python2 против Python3 в строку, содержащую шестнадцатеричное
- 26. Как преобразовать этот оператор python2 в python3?
- 27. python2 и Python3: __init__ и __new__
- 28. Передача двоичного файла из Python3 в Python2 в Windows
- 29. unickle OrderedDict from python3 in python2
- 30. Почему модуль python3 pip нашел библиотеки python2?
Предлагаемый список расширился. 1: [Основные методы межпроцессной связи] (http://en.wikipedia.org/wiki/Inter-process_communication#Main_IPC_methods). – Tadeck
Версия wxPython, поддерживающая python3, все еще находится в разработке. Я содрогаюсь, чтобы подумать, как далеко позади достойный GUI-строитель, такой как wxGlade, поддерживает версию pxon3 wxPython. –
@MatthewG Итак, почему вы хотите использовать python 3? – Marcin