Как запустить программу python, полученную клиентом с сервера без записи его в новый файл python?Сетевое программирование в python
ответ
code = "for a in range(10):\n\tprint 'lol'\n"
eval(compile(code, 'downloaded_code_fake_filename', 'exec'))
, но Остерегайтесь проблем безопасности! Исходный код должен быть криптографически подписан и не передаваться открытым текстом.
code = "for a in range (10): \ n \ tprint 'lol' \ n" eval (компиляция (код, 'download_code_fake_filename', 'exec')) не понял. не могли бы вы немного объяснить? –
@Ani: В своем ответе @BatchyX привел пример того, как выполнить код, который вы получите от клиента. 'code' - пример фрагмента кода; скопируйте его в IDLE и «распечатайте» его, чтобы посмотреть, как он выглядит. 'eval' - встроенная функция, которая оценивает фрагмент кода, назначенный переменной' code'. См. Документы: http://docs.python.org/library/functions.html#eval –
- функция exec устарела? Неужели он просто «exec (code)»? – Manux
см. http://docs.python.org/py3k/library/functions.html#exec для exec()
функция. он не устарел в py3.1. Я рекомендую делать просто exec(code)
. значения могут быть переданы путем проверки переменных в любых глобал или местных жителями словаря:
code = """
def f(): return 42
R = f()
"""
d = {}
exec(code, d)
print(d[ 'R' ])
Я бы рекомендовал использовать execnet. Он хорошо поддерживается и из того, что я читал, намного безопаснее, чем сырой exec или eval. За то, что вы пытаетесь сделать, проверьте basic examples.
блестящий! и интересный и полезный способ обработки распределенных/агентов в python. – user106514
Ответ Dcolish - это хорошо. Я не уверен, что идея выполнения кода, входящего в сетевой интерфейс, сама по себе хороша сама по себе - вам нужно будет убедиться, что вы можете доверять отправляющей стороне, особенно если этот интерфейс будет подвергнут воздействию Интернет или действительно любую производственную сеть.
- 1. Сетевое программирование в python
- 2. Сетевое программирование в Python
- 3. Сетевое программирование?
- 4. Сетевое программирование Язык D
- 5. Сетевое программирование с Python - клиент/сервер TCP
- 6. Функция C, Сетевое программирование
- 7. C Сетевое программирование - Winsock
- 8. Android Сетевое программирование
- 9. Linux \ BSD Сетевое программирование
- 10. Сетевое программирование UdP пакет
- 11. Сетевое программирование абстракция, разложение
- 12. Сетевое программирование с C#
- 13. Delphi Сетевое программирование
- 14. java сетевое программирование
- 15. Unix Сетевое программирование Разъяснение
- 16. Сетевое программирование - Приложения Связь
- 17. C11 сетевое программирование
- 18. Перейти в сетевое программирование libs
- 19. Сетевое программирование IPv6 без IPv6?
- 20. Java-сетевое программирование Объекты InetAddress
- 21. Сетевое программирование с использованием C++
- 22. C# Сетевое программирование - HTTPWebRequest Скребок
- 23. Сетевое программирование на C# - прослушивание
- 24. Как использовать заголовки в Unix Сетевое программирование
- 25. Winsock: сетевое программирование Windows в C++
- 26. Сетевое программирование: Python против C для полного новичка
- 27. Сетевое программирование внутри контроллера просмотра ... плохая практика?
- 28. Сетевое программирование Низкий уровень или класс абстракции?
- 29. Неблокирующие файловые дескрипторы Unix Сетевое программирование
- 30. Домашнее задание Назначение Java Сетевое программирование
Мне любопытно узнать, зачем вам это нужно. Поразмыслить? –