Используйте функции / классы из другого каталога - PullRequest
0 голосов
/ 20 сентября 2018

Я запускаю Windows, Anaconda и PyCharm, если это имеет значение.

Мой каталог выглядит следующим образом:

\MyMainDirectory
    \FunctionsLibrary
         ClassA.py
         ClassB.py
         functionA.py
         functionB.py
    \Project A
        main.py
    \Project B
        main.py

Как я могу с помощью этой настройки каталога использоватьнапример, functionA.py и ClassA.py и т. д. в моем файле e.g. \Project A\main.py, \Project B\main.py и т. д.?

У меня есть некоторые общие функции и классы, которые я хотел бы использовать в своих отдельных проектах «Проект A» и «Проект B».

Обратите внимание, что «Проект A» и«Проект B» - это два разных проекта в PyCharm.

Любая помощь приветствуется!

Ответы [ 3 ]

0 голосов
/ 20 сентября 2018

Вы можете установить переменную окружения PYTHONPATH следующим образом:

export PYTHONPATH=/path/to/FunctionsLibrary:/path/to/Project\ A

И после этого питон будет искать и в этом каталоге.

Если вы используете virtualenv, вы можете поместить этот экспорт в "активировать"."файл или вы можете установить переменную окружения с помощью PyCharm (см. в настройках).Я предпочитаю использовать "активировать" файл

0 голосов
/ 11 декабря 2018

Я думаю, что нашел лучшее решение (по крайней мере, для моего приложения, но, вероятно, и для других людей), которое заключается в создании пакета (модуля) класса или набора функций, который используется другим проектом.

Затем просто установите пакет (модуль), который вы собрали.Я просто следовал этому руководству, которое прекрасно работает.

https://packaging.python.org/tutorials/packaging-projects/

Обратите внимание: вам не нужно загружать код на github, также возможно просто иметь автономную версию вашегопакет.

Ура!

0 голосов
/ 20 сентября 2018

Вы можете включить пути, используя 'sys'

# In your main.py
import sys
sys.path.append("../FunctionsLibrary")
import ClassA
import ClassB
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...