Path variables
Use path variables to define absolute paths to resources that are not part of a specific project. These external resources may be located in different places on the computers of your teammates. This is why user-defined custom path variables are not stored as project settings, but as global IDE settings. Once configured, such path variables will have the same value for any project that you open with your instance of PyCharm.
Create a new path variable
- Press Control+Alt+S to open the IDE settings and then select Appearance & Behavior | Path Variables .
- Click , enter the name and value of the variable, and click OK to apply the changes.
You can use path variables to specify paths and command-line arguments for external tools and in some run configurations.
For example, you can define a path variable that points to the location of some data source (like a CSV file) or a third-party library that is not stored in your project. If you use this path variable in a run configuration that you share with your project, others can define the correct value for this path variable in their environment and be sure that the run configuration will work for them.
Refer to the variable as $var_name$ in fields and configuration files that accept path variables.
PyCharm also has the following built-in path variables:
The current user’s home directory.
The current project’s root directory.
Create a new path variable
For example, you have a Python script that processes some data stored in your system in the reports.csv file. You create a run/debug configuration to run this script and want to share this configuration with your teammates through the VCS.
- Press Control+Alt+S to open the IDE settings and then select Appearance & Behavior | Path Variables .
- Click and enter the name of the new variable (for example, DATA_PATH ) and its value that points to the target directory with the data file on your disk.
- Share the run/debug configuration through your version control system.
- Inspect the .idea/runConfiguration/.xml file: After your teammates update their projects from VCS, they will change the DATA_PATH variable value so that it points to the data directory on their computers.
Ignore path variables
Whenever you open or update a project, PyCharm checks for unresolved path variables. If the IDE detects any, it will ask you to define values for them. If you are not going to use files or directories with the unresolved path variables, you can add them to the list of ignored variables.
You can also use the list of ignored variables when a program argument passed to the run/debug configuration has the same format as a path variable (for example, an environment variable).
- Press Control+Alt+S to open the IDE settings and then select Appearance & Behavior | Path Variables .
- Add the names that PyCharm shouldn’t consider to be path variables to the Ignored Variables field.
- Click OK to apply the changes.
Configure a Python interpreter
To work with your Python code in PyCharm, you need to configure at least one Python interpreter. You can use a system interpreter that is available with your Python installation. You can also create a Virtualenv, pipenv, Poetry, or conda virtual environment . A virtual environment consists of a base interpreter and the installed packages.
With PyCharm Professional , you can also configure interpreters to execute your Python code on remote environments by using SSH, Vagrant, Docker, Docker Compose, or WSL (only for Windows).
When you configure a Python interpreter , you need to specify the path to the Python executable in your system. So, before configuring a Python interpreter, you need to ensure that you’ve downloaded Python and installed it in your system and you’re aware of a path to it.
You can create several Python interpreters based on the same Python executable. This is helpful when you need to create different virtual environments for developing different types of applications. For example, you can create one virtual environment based on Python 3.6 to develop Django applications and another virtual environment based on the same Python 3.6 to work with scientific libraries.
Python interpreters can be configured for a new project or for the current project (you can create a new interpreter or use one of the existing interpreters).
Configuring an existing Python interpreter
At any time, you can switch the Python interpreter either by using the Python Interpreter selector or in Settings .
Switch the Python interpreter using the Python Interpreter selector
- The Python Interpreter selector is located on the status bar. It is the most convenient and quickest way to switch the Python interpreter. Just click it and select the target interpreter:
Switch the Python interpreter in the IDE settings
- Press Control+Alt+S to open the IDE settings and then select Project | Python Interpreter .
- Click the drop-down and select the desired Python interpreter:
- If it’s not on the list, click Show All . Then select the desired interpreter in the left pane and click OK . When PyCharm stops supporting any of the outdated Python versions, the corresponding Python interpreter is marked as unsupported.
When you change the project interpreter and select an SSH interpreter, you might need to synchronize the local content with the target server. Mind a notification balloon in the lower-right corner:
You can choose to enable the automatic uploading of files to the server:
- Click Auto-upload files to start uploading on the next save.
- Click Sync and auto-upload files to immediately sync the files and upload them on every save in future.
Modify a Python interpreter
- Press Control+Alt+S to open the IDE settings and then select Project | Python Interpreter .
- Expand the list of the available interpreters and click Show All .
- You can modify the path to the Python executable in the Interpreter path field. When the Associate this virtual environment with the current project checkbox is enabled, the interpeter is available only in the current PyCharm project. To change the interpreter name, select the target interpreter and click . The Python interpreter name specified in the Name field, becomes visible in the list of available interpreters. Click OK to apply the changes.
Remove a Python interpreter
If you no longer need a Python interpreter for a project, you can remove it from the project settings.
- 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 .
- Expand the list of the available interpreters and click Show All .
- Choose the interpreter that you want to remove and click .
Creating a new Python interpreter
Configuring local Python interpreters
To configure a local Python interpreter for the current project, follow one of the procedures below:
Configure a system interpreter
- Ensure that you have downloaded and installed Python on your computer. Installing Python on Windows from Microsoft Store If you are on Windows, you can download Python from the Microsoft Store and install it as a Python interpreter. Once the Python application is downloaded from the Microsoft Store, it becomes available in the list of the Python executables. Note that interpreters added from the Microsoft Store installations come with some limitations. Because of restrictions on Microsoft Store apps, Python scripts may not have full write access to shared locations such as TEMP and the registry.
- Do one of the following:
- Click the Python Interpreter selector and choose Add New Interpreter .
- Press Control+Alt+S to open Settings and go to Project: | Python Interpreter . Click the Add Interpreter link next to the list of the available interpreters.
- Click the Python Interpreter selector and choose Interpreter Settings . Click the Add Interpreter link next to the list of the available interpreters.
- Select Add Local Interpreter .
- In the left-hand pane of the Add Python Interpreter dialog, select System Interpreter .
- In the Interpreter drop-down, select one of the Python interpreters that have been installed in your system, or click and in the Select Python Interpreter dialog that opens, choose the desired Python executable. You will need admin privileges to install, remove, and upgrade packages for the system interpreter. When attempting to install an interpreter package through an intention action, you might receive the following error message: As prompted, consider using a virtual environment for your project.
- Click OK to complete the task.
Create a virtualenv environment
- Do one of the following:
- Click the Python Interpreter selector and choose Add New Interpreter .
- Press Control+Alt+S to open Settings and go to Project: | Python Interpreter . Click the Add Interpreter link next to the list of the available interpreters.
- Click the Python Interpreter selector and choose Interpreter Settings . Click the Add Interpreter link next to the list of the available interpreters.
- Select Add Local Interpreter .
- In the left-hand pane of the Add Python Interpreter dialog, select Virtualenv Environment .
- The following actions depend on whether you want to create a new virtual environment or to use an existing one. New virtual environment
- Specify the location of the new virtual environment in the Location field, or click and browse for the desired location in your file system. The directory for the new virtual environment should be empty.
- Choose the base interpreter from the list, or click and find the desired Python executable in your file system.
- Select the Inherit global site-packages checkbox if you want all packages installed in the global Python on your machine to be added to the virtual environment you’re going to create. This checkbox corresponds to the —system-site-packages option of the virtualenv tool.
Existing virtual environment
- Choose the desired interpreter from the list.
- If the desired interpreter is not on the list, click , and then browse for the desired Python executable (for example, venv/bin/python on macOS or venv\Scripts\python.exe on Windows).
The selected virtual environment will be reused for the current project.
If PyCharm displays the Invalid environment warning, it means that the specified Python binary cannot be found in the file system, or the Python version is not supported. Check the Python path and install a new version, if needed.
Create a conda environment
- Ensure that Anaconda or Miniconda is downloaded and installed on your computer, and you’re aware of a path to its executable file. For more information, refer to the installation instructions.
- Do one of the following:
- Click the Python Interpreter selector and choose Add New Interpreter .
- Press Control+Alt+S to open Settings and go to Project: | Python Interpreter . Click the Add Interpreter link next to the list of the available interpreters.
- Click the Python Interpreter selector and choose Interpreter Settings . Click the Add Interpreter link next to the list of the available interpreters.
- Select Add Local Interpreter .
- In the left-hand pane of the Add Python Interpreter dialog, select Conda Environment .
- The following actions depend on whether you want to create a new conda environment or to use an existing one. New conda environment
- Select the Python version from the list.
- Normally, PyCharm will detect conda installation. Otherwise, specify the location of the conda executable, or click to browse for it.
- Specify the environment name.
Existing conda environment
- Choose the desired environment from the list.
The selected conda environment will be reused for the current project.
Create a pipenv environment
- Do one of the following:
- Click the Python Interpreter selector and choose Add New Interpreter .
- Press Control+Alt+S to open Settings and go to Project: | Python Interpreter . Click the Add Interpreter link next to the list of the available interpreters.
- Click the Python Interpreter selector and choose Interpreter Settings . Click the Add Interpreter link next to the list of the available interpreters.
- Select Add Local Interpreter .
- In the left-hand pane of the Add Python Interpreter dialog, select Pipenv Environment .
- Choose the base interpreter from the list, or click and find the desired Python executable in your file system.
- If your project contains Pipfile , you can choose whether you want to install the packages listed in it by enabling or disabling the Install packages from Pipfile checkbox. By default, the checkbox is enabled.
- If you have added the base binary directory to your PATH environmental variable, you don’t need to set any additional options: the path to the pipenv executable will be autodetected. If the pipenv executable is not found, follow the pipenv installation procedure to discover the executable path, and then paste it in the Pipenv executable field.
- Click OK to complete the task.
When you have set the pipenv virtual environment as a Python interpreter, all available packages are added from the source defined in Pipfile . The packages are installed, removed, and updated in the list of the packages through pipenv rather than through pip.
Create a Poetry environment
- Do one of the following:
- Click the Python Interpreter selector and choose Add New Interpreter .
- Press Control+Alt+S to open Settings and go to Project: | Python Interpreter . Click the Add Interpreter link next to the list of the available interpreters.
- Click the Python Interpreter selector and choose Interpreter Settings . Click the Add Interpreter link next to the list of the available interpreters.
- Select Add Local Interpreter .
- In the left-hand pane of the Add Python Interpreter dialog, select Poetry Environment .
- The following actions depend on whether you want to create a new Poetry environment or to use an existing one. New Poetry environment
- Select Poetry Environment .
- Choose the base interpreter from the list, or click and find the desired Python executable in your file system.
- If your project contains pyproject.toml , you can choose whether you want to install the packages listed in it by enabling or disabling the Install packages from pyproject.toml checkbox. By default, the checkbox is enabled.
- If PyCharm doesn’t detect the poetry executable, specify the following path in the Poetry executable field, replacing jetbrains with your username:
/Users/jetbrains/Library/Application Support/pypoetry/venv/bin/poetry
C:\Users\jetbrains\AppData\Roaming\pypoetry\venv\Scripts\poetry.exe
/home/jetbrains/.local/bin/poetry
- Make sure that the project directory contains a pyproject.toml file.
- Select Existing environment . Then expand the Interpreter list and choose the desired interpreter.
- If the desired interpreter is not on the list, click, and then browse for the Python executable within the previously configured Poetry environment.
The selected Poetry environment will be reused for the current project.
Configuring remote Python interpreters
When a remote Python interpreter is added, at first the PyCharm helpers are copied to the remote host. PyCharm helpers are needed to run remotely the packaging tasks, debugger, tests and other PyCharm features.
Next, the skeletons for binary libraries are generated and copied locally. Also, all the Python library sources are collected from the Python paths on a remote host and copied locally along with the generated skeletons. Storing skeletons and all Python library sources locally is required for resolve and completion to work correctly.
PyCharm checks the remote helpers version on every remote run, so if you update your PyCharm version, the new helpers will be uploaded automatically, and you don’t need to recreate remote interpreter.
Configure a WSL interpreter
- Do one of the following:
- Click the Python Interpreter selector and choose Add New Interpreter .
- Press Control+Alt+S to open Settings and go to Project: | Python Interpreter . Click the Add Interpreter link next to the list of the available interpreters.
- Click the Python Interpreter selector and choose Interpreter Settings . Click the Add Interpreter link next to the list of the available interpreters.
- Select On WSL .
- Wait until PyCharm detects Linux on your machine and completes introspection. Press Next to proceed:
- In the left-hand pane of the dialog, select the type of the WSL interpreter you want to create: Virtual Environment , Conda Environment , or System Interpreter . For a system interpreter, just provide the path to the Python executable in the selected Linux distribution. For virtual and conda environments, you can provide a path to a Python executable of an existing environment in the selected Linux distribution or create a new environment based on the specified Python.
Once done, the new interpreter will be added to your project, and the default mnt mappings will be set.
Configure an interpreter using Vagrant
- Ensure that the following prerequisites are met (outside of PyCharm):
- One of supported Vagrant providers is installed on your computer.
- Vagrant is installed on your computer, and all the necessary infrastructure is created.
- The parent folders of the following executable files have been added to the system PATH variable:
- vagrant.bat or vagrant from your Vagrant installation. This should be done automatically by the installer.
- VBoxManage.exe or VBoxManage from your Oracle’s VirtualBox installation.
- The required virtual boxes are created.
- Make sure that the Vagrant plugin is enabled.
- Ensure that you have properly initiated and started Vagrant. Basically, you need to open the Terminal window and execute the following commands:
$ vagrant init ubuntu/trusty64
$ vagrant up
For more information, refer to Vagrant documentation.
- Click the Python Interpreter selector and choose Add New Interpreter .
- Press Control+Alt+S to open Settings and go to Project: | Python Interpreter . Click the Add Interpreter link next to the list of the available interpreters.
- Click the Python Interpreter selector and choose Interpreter Settings . Click the Add Interpreter link next to the list of the available interpreters.
Configure an interpreter using SSH
- Ensure that there is an SSH server running on a remote host, since PyCharm runs remote interpreters via ssh-sessions.
- Do one of the following:
- Click the Python Interpreter selector and choose Add New Interpreter .
- Press Control+Alt+S to open Settings and go to Project: | Python Interpreter . Click the Add Interpreter link next to the list of the available interpreters.
- Click the Python Interpreter selector and choose Interpreter Settings . Click the Add Interpreter link next to the list of the available interpreters.
- Select On SSH .
- Select an option to create a new SSH connection, then specify server information (host, port, and username). Alternatively, you can select Existing and choose any available SSH configuration from the list. To create a new SSH configuration, follow the steps below: Creating an SSH configuration
- Click next to the list of configurations:
- Click, disable the Visible only for this project checkbox, and fill in the required fields:
- Once done, the newly created SSH configuration will appear in the list of available configurations. It will also become available in the SSH Deployment Configurations settings. Click Next to proceed:
- In the next dialog window, provide the authentication details to connect to the target server. Select Password or Key pair (OpenSSH or PuTTY) and enter your password or passphrase. If Key pair (OpenSSH or PuTTY) is selected, specify:
- Private key : location of the file with a private key
- Passphrase : similar to a password, it serves to encrypt the private key.
Click Next to proceed.
- Select the Inherit global site-packages checkbox if you want all packages installed in the global Python on your machine to be added to the virtual environment you’re going to create. This checkbox corresponds to the —system-site-packages option of the virtualenv tool.
- You can configure the path mappings between your local project and the server. To do that, click the Browse icon in the Sync folders field and enter the path to the local project folder and the path to the folder on the remote server.
Click Create to complete adding the interpreter.
Configure an interpreter using Docker
- Do one of the following:
- Click the Python Interpreter selector and choose Add New Interpreter .
- Press Control+Alt+S to open Settings and go to Project: | Python Interpreter . Click the Add Interpreter link next to the list of the available interpreters.
- Click the Python Interpreter selector and choose Interpreter Settings . Click the Add Interpreter link next to the list of the available interpreters.
- Select On Docker .
- Select an existing Docker configuration in the Docker server dropdown. Alternatively, click and perform the following steps to create a new Docker configuration: Create a Docker configuration Click to add a Docker configuration and specify how to connect to the Docker daemon. The connection settings depend on your Docker version and operating system. For more information, refer to Docker connection settings. The Connection successful message should appear at the bottom of the dialog. For more information about mapping local paths to the virtual machine running the Docker daemon when using Docker on Windows or macOS, refer to Virtual machine path mappings for Windows and macOS hosts. You will not be able to use volumes and bind mounts for directories outside of the mapped local path. This table is not available on a Linux host, where Docker runs natively and you can mount any directory to the container.
- The following actions depend on whether you want to pull a pre-built image from a Docker registry or to build an image locally from a Dockerfile. Pull a Docker image Select Pull or use existing and specify the tag of the desired image in the Image tag field. Build a Docker image Select Build and change the default values in the Dockerfile and Context folder fields if necessary. If required, expand the Optional section and specify the following:
Image tag | Specify an optional name and tag for the built image. This can be helpful for referring to the image in the future. If you leave the field blank, the image will have only a random unique identifier. |
Build options | Set supported docker build options. For example, you can specify metadata for the built image with the —label option. |
Build args | Specify the values for build-time variables that can be accessed like regular environment variables during the build process but do not persist in the intermediate or final images. This is similar to using the —build-args option with the docker build command. These variables must be defined in the Dockerfile with the ARG instruction. For example, you can define a variable for the version of the base image that you are going to use: |
ARG PY_VERSION=latest FROM python:$PY_VERSION
The PY_VERSION variable in this case will default to latest and the Dockerfile will produce an image with the latest available version of Python, unless you redefine it as a build-time argument. If you set, PY_VERSION=3.10 , Docker will pull python:3.10 instead, which will run a container with Python version 3.10. Redefining the PY_VERSION argument is similar to setting the following command-line option:
—build-arg PY_VERSION=3.10
Configure an interpreter using Docker Compose
- Do one of the following:
- Click the Python Interpreter selector and choose Add New Interpreter .
- Press Control+Alt+S to open Settings and go to Project: | Python Interpreter . Click the Add Interpreter link next to the list of the available interpreters.
- Click the Python Interpreter selector and choose Interpreter Settings . Click the Add Interpreter link next to the list of the available interpreters.
- Select On Docker Compose .
- Select an existing Docker configuration in the Server dropdown. Alternatively, select Create new and perform the following steps to create a new Docker configuration: Create a Docker configuration Click to add a Docker configuration and specify how to connect to the Docker daemon. The connection settings depend on your Docker version and operating system. For more information, refer to Docker connection settings. The Connection successful message should appear at the bottom of the dialog. For more information about mapping local paths to the virtual machine running the Docker daemon when using Docker on Windows or macOS, refer to Virtual machine path mappings for Windows and macOS hosts. You will not be able to use volumes and bind mounts for directories outside of the mapped local path. This table is not available on a Linux host, where Docker runs natively and you can mount any directory to the container.
- In Configuration files , specify the docker-compose.yml file. Also select the service. Optionally, specify environment variables and edit the Compose project name in Project name .
- Wait until PyCharm creates and configures a new target:
- Next, select an interpreter to use in the container. You can choose any virtualenv or conda environment that is already configured in the container, or select a system interpreter.
- Click OK . The configured remote interpreter is added to the list.
Setting the default interpreter
In PyCharm, you can specify an interpreter that will be automatically set for all newly created projects.
- Go to File | New Projects Setup | Settings for New Projects (on Window and Linux) or File | New Projects Setup | Preferences for New Projects (on macOS).
- Select Python Interpreter settings. Then either choose an existing interpreter from the Python interpreter list of click to add a new interpreter. Click OK to save the changes. The change will become effective for all newly created projects in PyCharm.
Managing interpreter packages
For each interpreter, you can install, upgrade, and delete Python packages. By default, PyCharm uses pip to manage project packages. For conda environments you can use the conda package manager.
PyCharm smartly tracks the status of packages and recognizes outdated versions by showing the number of the currently installed package version (column Version ), and the latest available version (column Latest version ). When a newer version of a package is detected, PyCharm marks it with the arrow sign and suggests to upgrade it.
By default, the Latest version column shows only stable versions of the packages. If you want to extend the scope of the latest available versions to any pre-release versions (such as beta or release candidate ), click Show early releases .
You can upgrade several packages at once. Hold Cmd (macOS) or Ctrl on (Unix or Windows), left-click to select several items in the list of packages, and then click Upgrade .
See the detailed instructions:
- How to install a package
- How to upgrade the package
- How to uninstall the package
If you are looking for a more convenient way to search for Python packages, preview the documentation, and manage Python package repositories, try the Python Packages tool window. For more information, refer to Manage packages in the Python Packages tool window.
Run/Debug Configuration: Shell Script
The set of parameters in the dialog depends on the option you select under Execute :
- Script file (a configuration to run a script file)
- Script text (a configuration to run a single command)
Provide the path to the shell script file. Type the path manually or click and select the path in the dialog that opens.
Specify the options that you want to pass to the script when it is launched.
Provide the absolute path of a directory to run the script in.
Specify environment variables if you need them in the script. You can click to open the Environment Variables window where you can browse and copy existing variables or create your own.
Provide the path to the interpreter for running the script. Type the path manually or click and select the path in the dialog that opens.
Specify the options that you want to pass to the script interpreter.
Enter the text of the command to be run.
Provide the absolute path of a directory to run the command in.
Specify environment variables if you need them in the command. You can click to open the Environment Variables window where you can browse and copy existing variables or create your own.
Common settings
When you edit a run configuration (but not a run configuration template), you can specify the following options:
Specify a name for the run configuration to quickly identify it among others when editing or running.
Allow multiple instances
Allow running multiple instances of this run configuration in parallel.
By default, it is disabled, and when you start this configuration while another instance is still running, PyCharm suggests stopping the running instance and starting another one. This is helpful when a run configuration consumes a lot of resources and there is no good reason to run multiple instances.
Store as project file
Save the file with the run configuration settings to share it with other team members. The default location is .idea/runConfigurations . However, if you do not want to share the .idea directory, you can save the configuration to any other directory within the project.
By default, it is disabled, and PyCharm stores run configuration settings in .idea/workspace.xml .
Toolbar
The tree view of run/debug configurations has a toolbar that helps you manage configurations available in your project as well as adjust default configurations templates.
Create a run/debug configuration.
Вопрос №40464 от пользователя Семен Филькин в проекте «Игры разума»
Хоть уже много раз спрашивали, все-таки напишу вопрос, ибо ничего не понятно. Все реализовано в соответствии с инструкцией, проблема в строке:
Собственно из консоли все работает, команды «poetry run brain-games» и «python -m brain_games.scripts.brain_games» исполняются нормально. Но при запуске из любой IDE (PyCharm в том числе) стандартная ошибка:
Если в PyCharm отметить директории brain_games и scripts как "Source roots" то при запуске из IDE работает импорт следующего вида (но из терминальных команд не работает):
Изучение интернета мало, что дало, только, что это как-то связано с PYTHONPATH и пути решения описывают добавление в начало кода несколько строк, добавляющих путь модуля в path. Не это как-то бредово - менять код проекта так, чтобы конкретная IDE вела себя по другому. Я все-таки не оставляю надежд как-то настроить IDE (любую) для разработки проектов.
Вы не должны добавлять директории проекта в "source roots". "root", это корень, а у вас корень репозитория ровно один. Эта настройка используется в проектах, состоящих из нескольких репозиториев. И PYTHONPATH тоже предназначен для "сложных ситуаций".
Меж тем, из-за того, что вы добавляете roots, PyCharm позволяет вам писать некорректный в целом код: from cli import welcome_user - неправильный импорт, пусть даже он и "нравится" PyCharm. Дело в том, что этот импорт - абсолютный, но не имеет смысла при запуска кода из корня репозитория! Поэтому при нормальном запуске ( poetry run ) вы и получаете ошибку.
Проще говоря: "норма", это "работает в терминале при запуске через poetry". А не "получилось заставить запускаться в PyCharm" - это вы и сами уже почувствовали 🙂
Я все-таки не оставляю надежд как-то настроить IDE (любую) для разработки проектов.
Не нужна вам сейчас IDE. Cкажу даже больше, вредна! Пока вы не понимаете, как интерпретатор работает с теми же модулями проекта, использование PyCharm и "решение" проблем с помощью его опций только усложнит обучение. Хватит "редактора с подсветкой", приходите в Slack, там вам расскажут, как VSCode настроить.
А PyCharm оставьте на потом - когда у вас сформируется понимание того, как всё работает, большая IDE будет помогать в больших проектах. Пока же проекты настолько малы, что можно хоть в блокноте написать 🙂
P.S. Чтобы PyCharm правильно запускал интерпретатор и видел модули, нужно ему указать на виртуальное окружение, которое Poetry создал для проекта. И нужно не разрешать PyCharm "запускать файлы". Команда для запуска должна выглядеть как "python -m foo.bar.baz", а не "python foo/bar/baz.py" - это принципиальный момент. Но я всё же настаиваю на откладывании PyCharm на потом 🙂
Алексей, спасибо, благодаря вашему комментарию наконец разобрался (два дня возился). Указать на виртуальное окружение было легко (просто выбрать в качестве интерпретатора python.exe в папке .venv проекта, созданной poetry), но долго не мог понять как изменить параметры запуска файла PyCharm нужным образом, чтобы он видел модули. В настройках запуска "Run\Debug configurations" по-умолчанию стоит "Script path" где прописан полный путь до запускаемого файла, нужно поменять его на "Module name" и указать там "brain_games.scripts.brain_games", также "Working directory" изменить на корневую папку проекта. После этого все работает как нужно.
Касательно сложности IDE - полностью согласен, по ощущениям обучение в PyCharm похоже на написание списка покупок при помощи Photoshop. У меня PyCharm стоит с базового курса Python на другом проекте, там print("Hello world") почему-то предлагалось сразу писать в PyCharm и как-то привык, поскольку альтернатив не предлагалось. Перед началом проекта пытался найти что-то попроще, потратил много времени кроме Atom ничего интересного не увидел, почти везде рассматриваются IDE. За наводку на VSCode спасибо, ранее было непонимание, путал с Visual Code. Установил - выглядит интересно, даже есть встроенный терминал, начну пользоваться. Добавьте ссылку на него в курс "Python: Настройка окружения" или же в первый этап проекта - сильно упростит жизнь новичкам.
Семен Филькин, может я чего не понимаю, но до этого момента все написано в nano. Для чего IDE?