Найти - Пользователи
Полная версия: Как импортировать сторонние пакеты и модули?
Начало » Python для новичков » Как импортировать сторонние пакеты и модули?
1 2
fshshsh
За язык взялся недавно, только работу с типами изучал. Вот подошел к практике, хочу пару пакетов подключить, но не знаю как. В гугле пишут и про sys.path.append() вместо просто - import, и про добавление в системное окружение. А с импортом пакетов что-то еще сложнее - там еще фигурируют __init__.py (либо setup.py).

Для них не достаточно поместить их в папку со своей программой и в программе прописать их импорт?
JOHN_16
fshshsh
изучайте язык не посредством гугления, а по какой нибудь книжке. Потому что это:
fshshsh
В гугле пишут и про sys.path.append() вместо просто - import, и про добавление в системное окружение. А с импортом пакетов что-то еще сложнее - там еще фигурируют __init__.py (либо setup.py).
писец

fshshsh
Для них не достаточно поместить их в папку со своей программой и в программе прописать их импорт?
а вот зачем такое спрашивать ? ЧТо вам мешает потратить 1 минуту и сделать 2 маленьких файла и проверить самолично?
Достаточно.
TitanFighter
Лутц М. - Изучаем Python (4-е издание)- 2011, страница 641. Прочитайте главу и будет понятно.
fshshsh
JOHN_16
ЧТо вам мешает потратить 1 минуту и сделать 2 маленьких файла и проверить самолично?
Переборщил с ленью

TitanFighter
Лутц М. - Изучаем Python (4-е издание)- 2011, страница 641. Прочитайте главу и будет понятно.
Спасибо. Нашел.
Iskatel
Задам здесь глупый вопрос, чтоб веток не плодить…

А как импортировать модуль не лежащий на питоновских “путях”? На прямое указание пути к папке питон ругается…
TitanFighter
Iskatel
А как импортировать модуль не лежащий на питоновских “путях”?
from importlib.machinery import SourceFileLoader
foo = SourceFileLoader("module_name", "/path/to/module.py").load_module()
foo.MyClass()
py.user.next
Iskatel
А как импортировать модуль не лежащий на питоновских “путях”? На прямое указание пути к папке питон ругается…

import sys
 
sys.path.append(path_to_dir)
Есть там ещё какой-то способ, когда пути снаружи редактируются в каком-то файле.
TitanFighter
py.user.next
Есть там ещё какой-то способ, когда пути снаружи редактируются в каком-то файле.
Можно закинуть файл our_manual_paths.pth в …/lib/python3.4/site-packages
и в нем прописать пути к папке, где лежат нужные файлы, к примеру
K:\Source\Python\lib
Питон добавит этот путь для поиска модулей.

В папке K:\Source\Python\lib могут быть файлы к примеру
logger.py
fstools.py

Которые импортировать можно как обычно, т.е.
import logger
py.user.next
TitanFighter
Можно закинуть файл our_manual_paths.pth в …/lib/python3.4/site-packages
Да, почитал - в общем, не вариант.
Нужно локальные пути проекта иметь без всяких установок в питон.

Так что либо изменение sys.path, либо создание дерева пакетов (пусть даже с одним файлом в пакете).
Зато можно будет всё разложить по папкам и вызывать независимо от настроек питона.

TitanFighter
Можно закинуть файл our_manual_paths.pth в …/lib/python3.4/site-packages
Это если есть права на закидывание.
TitanFighter
py.user.next
TitanFighter
Можно закинуть файл our_manual_paths.pth в …/lib/python3.4/site-packages
Это если есть права на закидывание.
Не вижу никаких проблем. Я пользуюсь virtualenv-ом, который создаю в домашней папке - права у юзера на свою папку полные.
Так же выше предложены 2 варианта, чтоб никуда ничего не кидать.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB