Ніколи не потрібно змінювати шлях безпосередньо через змінні середовища або sys.path
. Якщо ви використовуєте os (наприклад apt-get
), або pip
у virtualenv, пакети будуть встановлені до місця, яке вже знаходиться на шляху.
У вашому прикладі радіо GNU встановлюється в стандартне site-packages
місце розташування системи Python 2 , яке вже знаходиться в шляху. Досить вказати PyCharm на правильного перекладача; якщо це не так, є щось інше не те, що не видно. Можливо, /usr/bin/python
це не вказує на того самого перекладача, в якому було встановлено радіо GNU; спробуйте вказати конкретно на python2.7
двійкове. Або PyCharm був дещо поганим у виявленні пакетів; File > Invalidate Caches > Invalidate and Restart
сказав би це пересканувати.
Ця відповідь стосується того, як слід створити середовище проекту, встановити пакети в різних сценаріях та налаштувати PyCharm. Я кілька разів посилаюся на керівництво користувача упаковки Python , написане тією самою групою, яка підтримує офіційні засоби упаковки Python.
Правильний спосіб розробити додаток Python - це з virtualenv. Пакети та версія встановлюються без впливу на систему чи інші проекти. PyCharm має вбудований інтерфейс для створення virtualenv та встановлення пакетів. Або ви можете створити його з командного рядка, а потім вказати на нього PyCharm.
$ cd MyProject
$ python2 -m virtualenv env
$ . env/bin/activate
$ pip install -U pip setuptools # get the latest versions
$ pip install flask # install other packages
У своєму проекті PyCharm перейдіть до File > Settings > Project > Project Interpreter
. Якщо ви використовували virtualenvwrapper
або PyCharm для створення env, то вона повинна відображатися в меню. Якщо ні, натисніть на шестірню, виберіть Add Local
і знайдіть бінарний файл Python у оточенні. PyCharm відобразить усі пакети у вибраній програмі.
У деяких випадках, як, наприклад, з радіо GNU, немає пакета для встановлення pip
, пакет був встановлений загальносистемно під час встановлення решти радіо GNU (наприклад apt-get install gnuradio
). У цьому випадку ви все-таки повинні використовувати virtualenv, але вам потрібно ознайомитись із цим системним пакетом.
$ python2 -m virtualenv --system-site-packages env
На жаль, це виглядає трохи безладним, оскільки всі системні пакети тепер з’являться у вашій програмі, але вони є лише посиланнями, ви все одно можете безпечно встановити або оновити пакети, не впливаючи на систему.
У деяких випадках у вас буде кілька локальних пакунків, які ви розробляєте, і ви хочете, щоб один проект використовував інший пакет. У цьому випадку ви можете подумати, що вам доведеться додати локальний пакет до шляху іншого проекту, але це не так. Вам слід встановити пакунок у режимі розробки . Все, що потрібно, це додавання setup.py
файлу до вашого пакета , який у будь-якому разі знадобиться для правильного розповсюдження та розгортання пакета пізніше.
Мінімальний setup.py
для вашого першого проекту:
from setuptools import setup, find_packages
setup(
name='mypackage',
version='0.1',
packages=find_packages(),
)
Потім встановіть його у оточенні вашого другого проекту:
$ pip install -e /path/to/first/project