Перейти к содержимому

Venv library root pycharm как убрать

  • автор:

Cleaning system cache

PyCharm caches a great number of files, therefore the system cache may become overloaded. Sometimes the caches will never be needed again, for example, if you work with frequent short-term projects. Also, the only way to solve some conflicts is to clean out the cache.

  • Files will not be deleted until you restart PyCharm.
  • Opening and closing a project does not result in deleting any files.
  1. Go to File | Invalidate Caches/Restart .
  2. In the Invalidate Caches dialog, select the relevant action. You can invalidate the caches and restart the IDE or just restart the IDE.

If any of the old version files or directories remain after cleaning the IDE cache, select Help | Delete Leftover IDE Directories from the main menu.

For more information about various user-specific files, refer to Directories used by the IDE.

Виртуальные окружения — Python: Настройка окружения

Вы уже знаете, что pip устанавливает пакеты в одно из двух окружений — в общесистемное или пользовательское. Интерпретатор Python при импорте модуля или пакета ищет его сначала в пользовательском окружении, затем — в общесистемном. Такая последовательность позволяет пользователю иметь нужные именно ему версии библиотек и Python-программ.

Но даже двух окружений недостаточно, когда программист начинает работать с несколькими проектами, ведь разные проекты могут иметь разные наборы зависимостей. Еще более тяжелый случай: разные проекты могут зависеть от общей библиотеки, но требовать разные ее версии — тогда происходит конфликт версий.

Очевидно, что разработчику на Python нужен какой-то механизм, позволяющий содержать разные проекты в изолированных песочницах. Такой механизм существует. Он называется виртуальные окружения.

Устройство виртуальных окружений

Каждое виртуальное окружение представляет собой директорию. Ее содержимое структурно напоминает общесистемное окружение — поддиректории соответственно названы и наполнены. Давайте рассмотрим пример:

env env ├── bin │ ├── activate │ … │ ├── pip │ … │ └── python3 -> …/python3 ├── lib │ └── python3.6 │ └── site-packages │ ├── pip │ │ ├── … │ … │ └── setuptools-40.6.2.dist-info │ ├── … … 

В директории виртуального окружения находится директория bin/ , внутри которой расположены:

  • Копия интерпретатора под именем python3 (символическая ссылка на оригинал)
  • Копия исполняемого файла pip

В соседней директории по пути lib/python3.6/site-packages есть библиотеки, уже установленные в окружение. Как правило, только что созданное окружение имеет:

  • Установленный пакет pip (исполняемый файл bin/pip — его точка входа)
  • Пакет Setuptools

Эти два пакета составляют необходимый минимум для разработки проекта на Python.

При работе в окружении нужно запускать не системные Python и pip, а исполняемые файлы из директории bin . Когда интерпретатор Python находится в окружении, он знает, где находятся все доступные пакеты. Интерпретатор находит их по относительному пути ../lib/python3.6 . В таком случае копия pip из директории bin/ устанавливает пакеты в это же окружение, не затрагивая систему. Получается та самая изоляция, о которой мы говорили в начале урока.

Создание виртуального окружения

Вручную создавать всю описанную иерархию директорий и файлов не нужно — для этого есть специальный модуль venv .

В macOS и Windows этот модуль входит в поставку Python. На Ubuntu его нужно установить отдельно командой:

sudo apt install python3-venv 

Проверим, что модуль установился и готов к использованию:

-m venv --help usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip] [--prompt PROMPT] ENV_DIR [ENV_DIR . ] 

Обычно окружение создается командой python3 -m venv имя_окружения . Давайте попробуем создать виртуальное окружение и установить туда пакет cowsay :

Вы можете видеть, что пакет устанавливается вместе с точкой входа, которую можно вызвать командой first_venv/bin/cowsay . Также сам пакет становится доступен интерпретатору, но только тому, что был запущен из окружения.

В таком виде виртуальное окружение уже можно использовать полноценно. Но постоянно вводить команды с префиксом first_venv/bin/ не очень удобно. Есть способ упростить вызов команд, доступных в окружении — это активация.

Активация окружения

При создании окружения в поддиректорию bin помещается сценарий оболочки, который на macOS и Ubuntu называется activate , а на Windows — activate.bat . Чтобы выполнить этот сценарий, нужно вызвать команду:

  • на macOS и Ubuntu:
source first_venv/bin/activate 
  • на Windows:
\> first_venv\Scripts\activate.bat 

В команде выше обратите внимание, что в Windows поддиректория с исполняемыми файлами называется не bin , а Scripts .

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

После активации отпала необходимость указывать путь до вызываемого исполняемого файла. Теперь cowsay и python вызываются без префикса, но это все те же команды из окружения.

Еще изменилось приглашение оболочки: в нем стало отображаться имя окружения. Это работает на macOS и Ubuntu и всегда напоминает, что мы находимся в виртуальном окружении.

Деактивация окружения делается командой deactivate , которая становится доступна после активации.

Активация и деактивация окружения влияют только на текущую сессию — то есть заметны только в этом конкретном терминале. Это удобно, потому что так можно иметь несколько окружений и активировать их одновременно в разных окнах терминала.

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов

Наши выпускники работают в компаниях:

Manage interpreter paths

PyCharm makes it possible to add paths to the selected interpreter. These paths will be added to the environment variable PYTHONPATH . Also, PyCharm will index these paths and (potentially) resolve the objects of the code (for example, imports of packages).

View interpreter paths

  1. Do one of the following:
    • Press Control+Alt+S to open the IDE settings and then select Project | Python Interpreter .
    • Click the Python Interpreter selector and choose Interpreter Settings .
  2. Expand the list of the available interpreters and click Show All . Show all available interpreters
  3. Select the desired interpreter.
  4. In the toolbar of the Python Interpreters dialog, click the button . The existing paths of the selected interpreter show up in the Interpreter Paths dialog . Show an interpreter path

Add an interpreter path

  1. In the toolbar of the Python Interpreters dialog, click .
  2. Choose the desired path in the Select Path dialog. Note that to add a path to a particular Python version you need to download it from https://www.python.org/ and install it on your machine.

Delete interpreter paths

  1. Select the paths to be deleted.
  2. In the toolbar of the Interpreter Paths dialog, click . The removed paths remain in the list with the note «removed by user».

Reload interpreter paths

If an interpreter has been updated, it is a good idea to refresh its paths. You can do it by either way:

Rescan Python modules and packages

  • In the toolbar of the Interpreter Paths dialog, click .
  • Press Shift twice and type «Rescan» in the Actions tab of the search dialog. Select Rescan Available Python Modules and Packages .

Last modified: 23 August 2023

How to get rid of library root mark in PyCharm

example

I’ve started working on a Pyramid application, which requires setup.py usage, but as soon as I built the app, my app folder was marked as library root. It is not convenient, because when I open a file, it is also opened under External Libraries unfolding it. This can be «fixed» by removing check on Always Select Opened File, but I like this feature, so I don’t want to disable it. I’ve also tried to tweak Project Structure in settings, but it didn’t help. How to get rid of this _library_root_ mark? UPD. Contents of setup.py :

setup( name='app', version=0.1, description='Blog with CMS', classifiers=[ "Programming Language :: Python", "Framework :: Pylons", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application" ], keywords="web services", author='', author_email='', url='', packages=find_packages(), include_package_data=True, zip_safe=False, install_requires=['cornice', 'waitress'], entry_points="""\ [paste.app_factory] main=app:main """, paster_plugins=['pyramid'] ) 

asked Dec 11, 2019 at 14:04
2,808 1 1 gold badge 17 17 silver badges 29 29 bronze badges

Have you try to right click the sd-blog folder and mark directory as «Source Root»? Also could we see your setup.py content?

Dec 11, 2019 at 14:15

@HansDaigle yes, I’ve tried marking both sd-blog and app folders as Source Root, but it didn’t remove the library root thing. Added setup.py to the question.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *