IronPython по сравнению с Python.NET

Перейдите в каталог, где у вас есть MySQL.

 c:\mysql\bin\> mysql -u username -p password database_name <
 filename.sql

Также, чтобы вывести все базы данных, используйте опцию -all-databases, и имя базы данных больше не нужно указывать.

mysqldump -u username -ppassword –all-databases > dump.sql

Или вы можете использовать некоторые GUI-клиенты, такие как SQLyog, чтобы сделать это.

80
задан denfromufa 4 February 2017 в 09:24
поделиться

4 ответа

Если вы хотите в основном основывать свой код на платформе .NET, я настоятельно рекомендую IronPython против Python.NET. IronPython в значительной степени является родным .NET, поэтому он отлично работает при интеграции с другими языками .NET.

Python.NET хорош, если вы хотите просто интегрировать один или два компонента из .NET в стандартное приложение Python.

При использовании IronPython есть заметные различия, но большинство из них довольно тонкие. Python.NET использует стандартную среду выполнения CPython, поэтому эта страница Wiki представляет собой соответствующее обсуждение различий между двумя реализациями. Наибольшие различия возникают в стоимости исключений - поэтому некоторые стандартные библиотеки Python не работают так же хорошо в IronPython из-за их реализации.

68
ответ дан 24 November 2019 в 09:57
поделиться

IronPython является «родным для .NET», поэтому будет предпочтительнее, если вы хотите полностью интегрировать свой код Python с .NET; Python.NET работает с классическим Python, поэтому он позволяет держать ваш код Python на расстоянии вытянутой руки от собственно .NET. (Обратите внимание, что с этим кодом вы действительно можете использовать расширения, написанные для CPython из вашего кода IronPython, так что это больше не является различающим условием).

9
ответ дан 24 November 2019 в 09:57
поделиться

Соглашаясь с ответами Рида Копси и Алекса Мартелли, я хотел бы отметить еще одно отличие - глобальную блокировку интерпретатора (GIL). В то время как IronPython не имеет ограничений GIL, у CPython есть - поэтому может показаться, что для тех приложений, где GIL является узким местом, скажем, в определенных многоядерных сценариях, IronPython имеет преимущество перед Python.NET.

Документация Python.NET:

Важное примечание для разработчиков: Python не имеет свободных потоков и использует глобальный блокировка переводчика, чтобы разрешить многопоточные приложения для безопасно взаимодействовать с Python переводчик. Гораздо больше информации об этом доступно в Python Документация C API на www.python.org Веб-сайт.

При встраивании Python в управляемую приложение, вы должны управлять GIL точно так же, как и при встраивании Python в C или C ++ приложение.

Перед взаимодействием с любым из объекты или API, предоставляемые Python.Runtime пространство имен, вызывающий код должен был приобрести глобальный Python блокировка интерпретатора путем вызова Метод PythonEngine.AcquireLock . В единственное исключение из этого правила - PythonEngine.Initialize метод, который может быть вызван при запуске без получив GIL.

Когда вы закончите использовать Python API, управляемый код должен вызывать соответствующий PythonEngine.ReleaseLock для выпуска GIL и разрешить другим потокам использовать Python.

AcquireLock и ReleaseLock методы - это тонкие обертки над неуправляемый PyGILState_Ensure и PyGILState_Release функции из Python API и документация для эти API применяются к управляемым версии.

Еще одна проблема - поддержка IDE. CPython, вероятно, в настоящее время имеет лучшую поддержку IDE, чем IronPython, поэтому это может быть фактором выбора одного из них.

28
ответ дан 24 November 2019 в 09:57
поделиться

IronPython разработан Microsoft, поэтому я бы пошел своим чутьем и сначала использовал его, поскольку вы должны предположить, что он будет лучше работать с другими технологиями MSFT.

6
ответ дан 24 November 2019 в 09:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: