Чому я не можу імпортувати свій скрипт із консолі python?


9

Я працюю з консоллю qgis python. Зазвичай я зберігаю всі свої сценарії python у ~ / Scripts / python, який я встановив PYTHONPATH на ~ / Scripts / python в моєму .bashrc. Однак я не можу імпортувати свої скрипти з консолі всередині QGIS.

Ось моя помилка, коли я намагаюся імпортувати скрипт під назвою Create_Figures_2D

import Create_Figures_2D
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/qgis/utils.py", line 309, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
ImportError: No module named Create_Figures_2D

Як встановити ПІТОНПАТ для пігментів?


1
Спробуйте додати ~/Scripts/pythonPATH, який зазвичай працює для мене. Перевірте цеimport os; os.path
Nathan W

Відповіді:


11

На консолі Python запустіть наступне:

import sys
sys.path

Перевірте, чи вказаний ваш запис PYTHONPATH. Я здогадуюсь, що ні, оскільки ця змінна середовище, ймовірно, недоступна для запущеного Python QGIS.

Щоб додати папку сценаріїв до sys.path консолі, регулярно додайте ():

sys.path.append('~/Scripts/python')

Тоді ви зможете імпортувати свої модулі звідти для сеансу консолі. Я рекомендую розширити ~ до повного домашнього шляху вашого користувача (не впевнений, чи Python робить ~ розширення).

EDIT : ~ розширення , схоже, не підтримується sys.path (принаймні на Mac).

Консоль Python QGIS створена модулем Python, "console.py". Отже, якщо ви хочете додати свій власний шлях до його sys.path більш постійним способом, відредагуйте файл console.py та додайте після модуля оператор sys.path.append ('шлях / до / мій / скрипт'). розділ імпорту.

console.py розташований тут (для Mac, використовуючи пакет QGIS KyngChaos.com ):

/Applications/QGIS.app/Contents/Resources/python/qgis/console.py

Звичайно, це хак, який буде стертий і його потрібно буде переробити під час оновлення QGIS.app.

Будь-яке коригування sys.path перекладача QGIS Python доступне і для інших плагінів.

Більш безпечною альтернативою може бути створення простого розробки плагіну PyQGIS, який завантажує і просто виконує sys.path.append (), коли хочеш. Він також може видалити цей шлях з sys.path під час завантаження плагіна (). Я не перевіряв, чи буде доступне регулювання sys.path такого плагіна у вже завантаженій консолі (я здогадуюсь, це було б.)


Ваш хак поки що працює для мене чудово. Дуже дякую. На ubuntu 12.04 файл знаходиться за адресою /usr/share/pyshared/qgis/console.py
Рено

Відмінно! До речі, мені потрібно було перезапустити QGIS в Windows 7, щоб консоль Python усвідомила доданий шлях.
Дірк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.