Більше

Як використовувати дві різні версії Python (3.4 та 2.7) для сценаріїв QGIS?

Як використовувати дві різні версії Python (3.4 та 2.7) для сценаріїв QGIS?


Я маю намір навчитися писати сценарії за допомогою python в QGIS, але у мене є кілька запитань.

Я використовую Python 3.4 для навчання, яке встановлено на моєму ноутбуці, але QGIS використовує Python2.7

Як я міг працювати з обома разом? Створення введення в PYTHONPATH на зразок C:… python27 (де б воно не було в каталозі QGIS) та додавання shebang #!… Python27 на початку моїх сценаріїв?

Чи є інший спосіб роботи з обома версіями?

Я знову використовую PyQT і те саме питання. Один дизайнер у python3.4 встановлений, а інший - у каталог QGIS.

Як ти працюєш?


Я натрапив на цю проблему і прийшов до рішення. Я додав запитання / відповідь, щоб додати трохи розуміння цієї проблеми: Використання PyQGIS, ArcPy, NumPy, SciPy разом у командному рядку Windows


3. Використання Python у Windows¶

Цей документ покликаний надати огляд специфічної поведінки Windows, про яку ви повинні знати під час використання Python у Microsoft Windows.

На відміну від більшості систем та служб Unix, Windows не включає інсталяцію Python, що підтримується системою. Щоб зробити Python доступним, команда CPython протягом багатьох років складала інсталятори Windows (пакети MSI) з кожним випуском. Ці інсталятори в основному призначені для додавання Python для кожного користувача, при цьому основний інтерпретатор і бібліотека використовуються одним користувачем. Інсталятор також може встановлювати для всіх користувачів однієї машини, а окремий файл ZIP доступний для локальних дистрибутивів.

Як зазначено в PEP 11, випуск Python підтримує лише платформу Windows, тоді як Microsoft розглядає платформу за розширеної підтримки. Це означає, що Python 3.9 підтримує Windows 8.1 та новіші версії. Якщо вам потрібна підтримка Windows 7, встановіть Python 3.8.

Для Windows доступна низка різних установників, кожна з яких має певні переваги та недоліки.

Повний інсталятор містить усі компоненти і є найкращим варіантом для розробників, які використовують Python для будь-якого типу проекту.

Пакет Microsoft Store - це проста установка Python, яка підходить для запуску сценаріїв та пакетів, а також використання IDLE або інших середовищ розробки. Для цього потрібна Windows 10, але її можна безпечно встановити, не пошкоджуючи інші програми. Він також надає безліч зручних команд для запуску Python та його інструментів.

Пакети nuget.org - це легкі установки, призначені для систем безперервної інтеграції. Він може бути використаний для створення пакетів Python або запуску сценаріїв, але його не можна оновлювати та не має інструментів користувальницького інтерфейсу.

Вбудований пакет - це мінімальний пакет Python, придатний для вбудовування у більшу програму.


Як оновити python 3.5.2 до 3.6.2

Оскільки все ще існує багато пакетів, які залежать від Python2.x, тож вам слід уважно розглянути пакунки, які apt хоче видалити, перш ніж дозволити продовжувати.

після цього ви можете встановити потрібну версію до


Помилка досить чітка. Пакет, який ви намагаєтесь встановити, підтримує лише Python 3.6+.

Ваші варіанти - це встановити новіший python (для якого є безліч посібників в Інтернеті) або оновити до нового випуску Ubuntu LTS (16.04 наближається до кінця життя).

Схоже, вам якось вдалося встановити нову версію stomp.py (6.0.0), яка несумісна з Python 2, яка підтримується лише до версії 4.x.x.

Я пропоную вам видалити stomp.py і дозволити йому встановити правильну версію знову як залежність. Я протестував його у свіжому контейнері Ubuntu 16.04, і він у мене працював нормально, хоча майте на увазі, що вам також потрібні найновіші версії pip та setuptools, щоб правильно і правильно збирати та встановлювати все, що я спробував:

Тим не менш, хоча на Python 2.7 можна встановити elastalert, він також сумісний з Python 3 (тестована версія Ubuntu 16.04 за замовчуванням 3.5), що має бути правильним шляхом, якщо у вас немає чогось конкретного, що вас стримує, оскільки Python 2 застаріла і більше не підтримується оновленнями.


3 відповіді 3

Щоб встановити scipy для python3.x у розподіл на основі debian:

Це відповідає еквіваленту python2.x:

Якщо говорити про більш незалежну від платформи нотатку, pip - це більш стандартний спосіб встановлення пакетів python:

Щоб переконатися, що ви використовуєте правильну піп-версію, ви завжди можете бути більш чіткими:

Крім того, я вважаю, що анаконда або більш легка мініконда мали на меті спростити встановлення пакетів python із складними залежностями, плюс це дозволяє використовувати середовище, полегшуючи наявність декількох конфігурацій з несумісними версіями тощо. Це створить + використовуйте двійковий файл python, відмінний від того, який є у вашій системі.

Потім можна було б встановити scipy за допомогою команди conda:

Якщо встановити scipy для певної версії, ви створили б середовище з цією версією python:

Можна також використовувати pip всередині середовища conda поряд із пакетами conda python, але я б переконався, що ви використовуєте pip, встановлений за допомогою conda, щоб уникнути конфліктів. Додатковою перевагою при встановленні conda для користувача є те, що вам не потрібно додавати прапор --user під час встановлення за допомогою pip.


AWS SDK для Python (boto3)

Почати роботу з AWS у найкоротші терміни, використовуючи boto3 (AWS SDK для Python). Boto3 використовує інтеграцію додатків, бібліотеки та скриптів Python з такими сервісами AWS, як Amazon S3, Amazon EC2, Amazon DynamoDB та інші сервіси.

Встановити

Основні можливості

У boto3 є два різних рівні API. Клієнтські, або низькоуровневі, API забезпечують прив'язку одного-до-одного до базового операційного API HTTP. Ресурси API приховують явні сетеві визови, надаючи взаємні ресурсні об'єкти та об'єкти для доступу до атрибутів та виконаних дій. Пример

Сучасний та послідовний інтерфейс

Як клієнтський, так і ресурсний інтерфейс boto3 динамічно генерують класи на основі моделей JSON, описуючи API AWS. Це дозволяє швидко запропонувати оновлення із суворою непротиворечівостью для всіх підтримуваних сервісів.

Піддержка Python 2 і 3

У boto3 спочатку передбачена підтримка версії Python версії 2.7+ та 3.4+.

У boto3 використовуються функції офіціанта, які автоматично виконують попередньо визначені зміни стану ресурсів AWS. Наприклад, ви можете залишити інстанс Amazon EC2 і, використовуючи функцію офіціанта, додати його перехід у робоче стан або створити нову таблицю Amazon DynamoDB і додати, коли вона стане доступною для використання. У boto3 є функції офіціанта як для клієнтських, так і для ресурсних API.

Високоуровневі функції для різних сервісів

У boto3 є багато функцій для конкретних сервісів, таких як автоматична багатопотокова передача для сервісу Amazon S3 або додаткові умови запрошень для Amazon DynamoDB.


Менеджери версій Python

Інший спосіб - встановити безпосередньо з python.org Це встановить python в / usr / local / bin. Я думаю, це встановлює виконувані файли python та python3. Проблема з Homebrew полягає в тому, що він припускає, що речі в / usr / local встановлюються нею, і тому доктор пиво повідомлятиме про ці python.org пітони та бібліотеки як про проблеми, і, як це питання показує, рамки в / Library будуть проблематичними.

EDIT 8/2018 *** Я б зараз запропонував використовувати conda або miniconda, або anaconda. Це ще один менеджер пакунків, але заснований і в основному призначений для python, він також надає еквівалент віртуального середовища python та pyenv (відповідно до іншої відповіді), тому кожен проект може знаходитися в іншому python та різних бібліотеках (Macports перемикає лише версію python на всі проекти)


Служби геопросторових даних GIS і amp

Python та пакет Pyc ArcPy автоматично встановлюються, коли ви встановлюєте ArcGIS Desktop або ArcGIS Pro на свій комп'ютер. Хоча це робить зручним написання сценаріїв для автоматизації програмних процесів ArcGIS, є важливі речі, які слід врахувати, перш ніж ви зможете ефективно розпочати роботу з пакетом ArcPy. По-перше, важливо зазначити, що ArcGIS Desktop (до складу якого входить ArcMap) упакований з Python 2.7, а ArcGIS Pro - з Python 3.6. Це означає, що якщо на вашому комп’ютері встановлені як ArcMap, так і ArcGIS Pro - у вас на машині встановлено дві різні версії Python (і, можливо, навіть більше двох, якщо ви встановили Python окремо). Це важливо, тому що ви повинні переконатися, що будь-який написаний вами сценарій обробляється правильною установкою Python, а це також означає, що сценарій повинен бути написаний з певною версією Python, на яку ви намагаєтесь орієнтуватися через різницю між Python 2 і Python 3.

Відвідайте наведені нижче сайти, щоб отримати поглиблену інформацію про використання ArcPy для автоматизації процесів ArcGIS Desktop та ArcGIS Pro:

Якщо ви шукаєте загальну документацію та навчальні посібники з Python, які допоможуть розвинути ваші навички Python під час підготовки до сценаріїв, пов’язаних з ГІС, ви можете відвідати наступні веб-сайти, які пропонують корисні ресурси для учнів Python.


5 відповідей 5

Я пройшов установку у віртуальній машині, і сталося наступне.

Наприкінці вас запитають

Щоб відновити стару поведінку, перейдіть у свій домашній каталог і виконайте

Як ви пропонуєте, ви можете псевдонім python = python2, але я вважаю це трохи дивним. я б

  1. Відновіть оригінал .bashrc
  2. Створити (якщо він не існує)

Таким чином, виклик python3 розпочне те, що з Anaconda. Важливим моментом є те, що оригінал / usr / bin / python все ще є і все ще вказує на python2.7. Наслідки наявності python- & gtpython3 на вашому шляху залежать від того, як називається конкретний скрипт.

Якщо використовується shebang #! / Usr / bin / python, як це, мабуть, є у всіх виконуваних файлах, які постачаються з Ubuntu, нічого не зміниться. З іншого боку, для кращої переносимості #! / Usr / bin / env іноді використовується python, що тепер спричинить виклик python3.5.

& # 47.profile - після створення потрібно просто перереєструватися

Якщо хтось хоче змінити свою версію за замовчуванням python до 2.7 після того, як зіпсував її (змінивши стандартну версію на: anaconda або python 3) і закінчивши нефункціональним програмним забезпеченням, просто перейдіть за цим посиланням: Посилання з інструкціями щодо зміни за замовчуванням версія python.

Це спрацювало для мене, але для Miniconda, воно мало б працювати і для Anaconda, але, будь ласка, виправте мене, якщо я помиляюся.

Спочатку дістаньте свій $ PATH змінна:

Можливо, це буде виглядати так (шлях до мініконди перед усім іншим):

Скопіюйте цей шлях до кінця вашого

/.bashrc файл, але з Miniconda в кінці замість початку шляху приблизно так:

Система буде шукати програми на початку $ PATH змінна перед папкою miniconda3 / bin.

Він повинен відновити версії попередніх програм, які у вас були, такі як python.

/.bashrc. Тепер, щоб досягти того самого, відредагуйте

/.bashrc та прокоментуйте наведений нижче рядок так, щоб запобігти активації базового шару (базового середовища) у кожному терміналі. Не потрібно торкатися будь-якої іншої частини нових доповнень. Я не впевнений, яке значення має CONDA_CHANGEPS1 = false, але поки що не стикався з жодними проблемами.

І хоча ви більше не побачите папку conda у шляху, команда conda все одно буде працювати нормально, а також ваші оригінальні команди python, python3 та pipenv.

Ось моя відповідь, і вона може бути, а може не бути конкретною конкретною відповіддю на те, що ви зробили з власною системою.

Однак я потрапив у подібну ситуацію і мав ту саму стурбованість.

Я використовую Ubuntu 16.04 LTS та Python 2.7.12 і нещодавно встановив Anaconda.

Отже, коли я переходжу в командний рядок і набираю python, він все одно переходить до моєї інсталяції Python2.

Підтверджено цим секвенсом:

Отже, у моєму випадку анаконда НЕ викликає жодних проблем із моїми shebangs Python2 за замовчуванням.

Зрештою, це питання.

Коли ви запитаєте систему, якому python ви можете довірити, що це правильний рядок для використання в першому рядку ваших програм Python у стилі командного рядка.

У моїй ситуації всі мої файли сценаріїв командного рядка Python продовжують виконуватися чудово.

Я схильний писати Python у 3-сумісному режимі. Наприклад, використання дужок навколо моїх виписок. Але я активно противлююсь серйозній зміні системи, яка може спричинити затяті програми Python 2. Python 3 звучить чудово, але непотрібно для моїх потреб. Python 2 - дивовижна мова.

Моє обчислювальне середовище не дозволяє мені повернутися назад і переробити попередні процеси, які були налаштовані на коректну роботу, не приймаючи значного часу, оскільки мені довелося б повернутися назад і зрозуміти, де я його використав.

Підсумок для мене: Після встановлення анаконди для подальшого використання у мене не було ні швидкісних скорочень, ні проблем.

Це момент, коли я перебуваю в процесі. Щойно закінчив переатестацію всього минулого програмного забезпечення.

Наступним кроком є ​​насправді використовувати деякі цікаві речі, які обіцяно в упаковці.

Отже, я повинен підозрювати, що інші, просто встановлюючи анаконду, повинні мати більше для вашої ситуації.


1 відповідь 1

Python потрібен багатьом дистрибутивам Linux. Багато системних утиліт, які постачальники дистрибутивів поєднують (як на основі графічного інтерфейсу, так і не), запрограмовані на Python.

Версію python, в якій програмуються системні утиліти, я називатиму "головним" python. Для Ubuntu 12.04, напр. це 2.7.3, версія, яку ви отримуєте, викликаючи python у щойно встановленій системі.

Через системні утиліти, які написані на python, неможливо видалити основний python, не зламавши систему. Це навіть вимагає багато турботи оновлення основний пітон із пізнішою версією в тій же серії major.minor, оскільки вам потрібно подбати про його компіляцію з тими ж специфікаціями конфігурації, що і основний пітон. Це потрібно для отримання правильних шляхів пошуку для бібліотек, які використовує основний python, що часто не зовсім те, що отримає .configure без опцій, коли ви завантажуєте python для компіляції python з джерела.

Встановити версію, відмінну від основної версії основного, яку використовує система (тобто основний пітон), як правило, не є проблемою. Тобто Ви можете скомпілювати пітон 2.6 або 3.4 і встановити його без проблем, оскільки він встановлений наступний до основного (2.7.X) пітона. Іноді дистрибутив надає ці різні пакети major.minor, але вони можуть бути не останньою версією помилок у цій серії.

Проблеми починаються, коли ви хочете використовувати останню версію основної серії python (наприклад, 2.7.8 у системі з основною версією python - 2.7.3). Я рекомендую не намагатися замінити основний python, а замість цього скомпілювати та встановити 2.7.8 в окремому місці (мій знаходиться в /opt/python/2.7.8). Це буде тримати вас у графіку виправлення безпеки вашого розповсюдження та гарантує, що хтось ще перевіряє сумісність бібліотек python та з цією версією (як використовується системними утилітами!).

Для будь-якої розробки з використанням цієї версії python використовуйте virtualenv, (або virtualenvwrapper) та налаштуйте середовище 2.7.8, використовуючи:


Перегляньте відео: QGIS Geopackage Oluşturma, Sayısallaştırma Nasıl Yapılır