Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: В каких каталогах Python ищет модули, и как это можно изменить для своих нужд?

  1. В каких каталогах Python ищет модули, и как это можно изменить для своих нужд?

    Привет, народ! У меня тут возникла обострённая необходимость понять, в каких каталогах Python ищет модули по умолчанию, и как я могу настроить пути, чтоб он затягивал модули из моих кастомных директорий. Пробовал гуглить, но не совсем понял, как юзать sys.path и PYTHONPATH. Помогите примерами или толковыми объяснениями. Чувствую себя, будто голову в песок засунул - инфы много, а толку мало. Поддержите лайфхаками или опытом, кто как это решал!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Python ищет модули в нескольких местах. Для начала, можно глянуть на `sys.path`, который показывает текущие директории, где пайтон шарит модули.

    Программный код:
    import sys
    print(sys.path
    Чтобы добавить свою директорию, можно просто сунуть её в `sys.path`:

    Программный код:
    import sys
    sys
    .path.append('/твой/кастомный/путь'
    Или можно юзать переменную окружения `PYTHONPATH`, чтобы добавить директорию перед запуском питона:

    Программный код:
    export PYTHONPATH=$PYTHONPATH:/твой/кастомный/путь 
    Удачи в кодинге, чувак!

  4. Цитата Сообщение от ElenaStar
    Привет! Python ищет модули в нескольких местах. Для начала, можно глянуть на `sys.path`, который показывает текущие директории, где пайтон шарит модули.

    Программный код:
    import sys
    print(sys.path
    Чтобы добавить свою директорию, можно просто сунуть её в `sys.path`:

    Программный код:
    import sys
    sys
    .path.append('/твой/кастомный/путь'
    Или можно юзать переменную окружения `PYTHONPATH`, чтобы добавить директорию перед запуском питона:

    Программный код:
    export PYTHONPATH=$PYTHONPATH:/твой/кастомный/путь 
    Удачи в кодинге, чувак!
    Чётко объяснил про sys.path, думаю новичкам пригодится. Добавлю, что ещё можно юзать virtualenv, чтобы настроить отдельное окружение для проекта и там мутить свои пути для модулей. Если чё, могу объяснить.

  5. Всё верно, как тут написали. Но есть ещё один прикол - если ты юзаешь IDE типа PyCharm, то можешь настроить пути для модулей прям в настройках проекта, и не надо будет руками добавлять в sys.path. Очень удобно, особенно если ты постоянно переключаешься между проектами.

  6. Цитата Сообщение от Дария
    Всё верно, как тут написали. Но есть ещё один прикол - если ты юзаешь IDE типа PyCharm, то можешь настроить пути для модулей прям в настройках проекта, и не надо будет руками добавлять в sys.path. Очень удобно, особенно если ты постоянно переключаешься между проектами.
    Полезно для тех, кто юзает IDE. Я, например, до этого даже не знал, что можно так сделать в PyCharm. Знаю, что в VS Code тоже есть расширения для управления путями.

  7. Могу ещё добавить, что иногда нужно просто правильно настроить структуру проекта. Например, если у тебя есть каталог с модулями, просто добавь туда __init__.py, и Пайтон его будет воспринимать как пакет. Не обязательно даже менять sys.path или PYTHONPATH. Вот пример:

    Программный код:
    myproject/
        
    tmyproject/
                
    __init__.py
                mod1
    .py
                mod2
    .py 
    И юзаешь в главном файле:

    Программный код:
    from myproject import mod1mod2 
    Всё просто!

  8. Цитата Сообщение от Sunspot
    Могу ещё добавить, что иногда нужно просто правильно настроить структуру проекта. Например, если у тебя есть каталог с модулями, просто добавь туда __init__.py, и Пайтон его будет воспринимать как пакет. Не обязательно даже менять sys.path или PYTHONPATH. Вот пример:

    Программный код:
    myproject/
        
    tmyproject/
                
    __init__.py
                mod1
    .py
                mod2
    .py 
    И юзаешь в главном файле:

    Программный код:
    from myproject import mod1mod2 
    Всё просто!
    Точно! Отличный лайфхак с __init__.py. Упрощает структуру и понятнее становится, как модули импортяться. Больше таких примеров бы!

  9. Братан, просто используй пакетный менеджер, как pipenv или poetry, и тебе не придётся париться с системными путями. Эти штуки сами за тебя настроят все пути и зависимости. Реально экономит кучу времени, особенно когда проект становится большим.

  10. Цитата Сообщение от Маргарита Игоревна
    Братан, просто используй пакетный менеджер, как pipenv или poetry, и тебе не придётся париться с системными путями. Эти штуки сами за тебя настроят все пути и зависимости. Реально экономит кучу времени, особенно когда проект становится большим.
    По делу говоришь. Часто забывают про pipenv и poetry, а ведь реально удобные штуки. От себя добавлю, что ещё могут помочь conda environments, если юзаешь Anaconda.

Страница 1 из 2 12 ПоследняяПоследняя