Самый простой способ импортировать скрипты Python откуда с помощью Anaconda, не помещая их в одну и ту же родительскую папку и не изменяя системный путь.
Задний план
Существует множество вариантов использования для импорта собственных скриптов или пакетов Python для повторного использования в других программах. Например, я часто использую этот подход для импорта имен пользователей и паролей в сценарии, поэтому мне не нужно отображать конфиденциальную информацию. Например, если я загружаю скрипт на GitHub, я не хочу, чтобы кто-либо, имеющий доступ к репозиторию, знал мои пароли. Этого легко избежать, создав файл .py, содержащий классы, атрибутами которых являются мои логины и пароли. Я упоминал об этом в других статьях. Другой вариант использования — если вы используете Pandas для извлечения информации из базы данных и регулярно используете одни и те же SQL-запросы. Просто создайте функцию в файле .py и импортируйте запросы, чтобы вам не приходилось переписывать, копировать и вставлять или запоминать их каждый раз, когда вы их используете. Существует много других способов создания собственных сценариев или модулей Python для повторного использования. С помощью метода, который я вам покажу, вы можете импортировать скрипты Python из любого места с помощью Anaconda, не помещая их в одну и ту же родительскую папку и не изменяя системный путь.
Мотивация
Моя основная мотивация для написания этой статьи заключается в том, что я недавно купил Apple Mac Mini после многих лет использования компьютера с Windows для всех моих программ. В основном я использую Anaconda, потому что он отлично подходит для науки о данных, а Conda — удобный менеджер пакетов. Я долгое время импортировал свои собственные сценарии на свои машины с Windows с помощью Anaconda, но когда я купил Mac, я не мог понять, как это сделать таким же образом. Во многом это связано с тем, что внедрение и файловая структура Anaconda на Mac заметно отличались от внедрения в Windows. Что еще хуже, когда я пытался изучить, как это сделать на Mac, я не смог найти никаких хороших ресурсов о том, как это сделать легко. Я решил написать эту статью, чтобы помочь другим пользователям Anaconda на компьютерах Mac импортировать свои собственные скрипты Python. Хорошо, конечно… В качестве бонуса я также покажу вам, как это сделать в Windows.
Как
Вариант использования:
В этой статье я буду использовать пример гипотетического разработчика в команде, использующей Twitter API для сбора данных для анализа настроений и т. д. Чтобы использовать API, вам нужно будет импортировать ключ API и секреты для извлечения данных из Твиттер. Вы, конечно, не хотите размещать свой пароль в общем коде на GitHub, чтобы его могла видеть вся ваша команда. Вместо этого вы можете создать сценарий, содержащий ваш API-ключ и API-секрет, и вы можете импортировать его в свою работу, и никто никогда не увидит их в виде обычного текста. Одно предостережение здесь: если кто-то взломает ваш компьютер, но эта угроза кажется минимальной, и если это действительно произойдет, вам нужно беспокоиться о более серьезных вещах, чем о хакере, получающем ваш пароль API Twitter. Однако этот метод помогает минимизировать этот риск, поскольку вам нужно будет хранить свои учетные данные только в одном месте, и вы можете импортировать их из любого места, а не хранить файл в каждой из папок проекта, для которых вы его используете. Теперь, когда мы определили наш сценарий, я проведу вас через шаги, чтобы настроить его.
Шаг 1 Создайте каталог для размещения вашего скрипта Python
Сначала вам нужно создать каталог. Для этой статьи мой каталог называется creds/ и находится на моем рабочем столе. На данный момент каталог можно разместить в любом месте, но вам понадобится папка для размещения файлов Python, которые мы создадим на следующих шагах. Я покажу вам, как переместить каталог на шаге 4.
Шаг 2. Создайте скрипт Python для импорта
Второе, что вам нужно сделать, это создать скрипт Python для импорта в другую программу. Для этой статьи мы создадим файл, содержащий ваши учетные данные Twitter API, с именем mycreds.py внутри папки creds/. Вот как я создал файл для своих учетных данных.
Как видите, там больше учетных данных, чем только для Twitter API. Любой, кто прочитал мою статью об отправке себе текстового сообщения по электронной почте с помощью Python, чтобы вы знали, когда ваша модель машинного обучения завершила обучение, может признать использование класса Google.
Шаг 3. Создайте файл __init__.py
В папке creds/ создайте пустой файл и сохраните его как __init__.py . Это говорит Python рассматривать ваш каталог как модуль, чтобы его можно было импортировать. Подробнее на эту тему вы можете прочитать в Документации по Python.
Шаг 4. Переместите свой каталог
Следующим шагом будет перемещение вашего каталога creds/ туда, где его распознает Anaconda, и вы сможете импортировать его в сценарий, с помощью которого вы пытаетесь получить данные из Twitter, или в любой другой реальный вариант использования. Я включил инструкции о том, где разместить его для Mac и Windows. Обязательно воспользуйтесь инструкцией для вашей конкретной ОС.
Мак
На Mac переместите папку creds/ в:
Users/[your_username]/opt/anaconda3/lib/[python3.8]/site-packages/creds
Окна
В Windows переместите папку creds/ в:
C:\Users\[your_username]\Anaconda3\Lib\site-packages\creds
Согласование для вашей машины
Вы заметите, что в каждом пути к файлу, который я указал как для Mac, так и для Windows, есть части пути к файлу, которые я заключаю в квадратные скобки. Эти части пути к файлу являются частями пути к файлу, которые вам, вероятно, потребуется изменить, чтобы они соответствовали вашей машине. Например, в версии пути к файлу для Mac вы можете использовать другую версию Python в Anaconda. Просто измените часть пути на свою версию Python. Например, python3.7 путь к файлу должен быть Users/[your_username]/opt/anaconda3/lib/python3.7/site-packages.
Как для Mac, так и для Windows вам потребуется заменить [your_username] своим именем пользователя. Например, если вас зовут Оскар Д. Грауч и вы используете Python 3.8, путь к файлу будет таким:
Mac: Users/oscardgrouch/opt/anaconda3/lib/python3.8/site-packages
Windows: C:\Users\oscardgrouch\Anaconda3\Lib\site-packages
Шаг 5. Используйте свой модуль
Последний шаг — использовать ваш импортируемый код Python. Опять же, теперь, когда он находится в правильном месте, вы можете импортировать его из любого другого скрипта Python на вашем компьютере независимо от того, в каком каталоге он находится.
В качестве доказательства концепции я создал Jupyter Notebook для использования нашего файла mycreds.py и поместил его в следующий каталог: C:\Users\michael\Google Drive\Documents\Medium\2021\Anaconda Import Package\Medium Import Example.ipynb, который находится далеко от папки, в которой мы создали файл mycreds.py. C:\Users\michael\Anaconda3\Lib\site-packages, а модуль по-прежнему отлично импортируется и работает.
Вывод
В этой статье вы узнали, как создать модуль Python, который легко импортируется в любой скрипт на вашем компьютере, будь то Mac OS или Windows. Вы также почувствовали вкус того, что вы можете сделать с этим знанием теперь, когда оно у вас есть. Я призываю вас подумать о другом коде, который вы постоянно пишете, и поместить его в импортируемый модуль для будущего использования. Используйте СУХОЙ метод. Не надо. Повторение. Себя.
Как всегда, дайте мне знать, если у вас есть какие-либо вопросы в комментариях. Хорошего дня. Ваше здоровье!