Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 30.11.2025
Сообщений: 3

Как заставить скрипт видеть свою истинную директорию?

30.11.2025, 07:46. Показов 968. Ответов 7

Студворк — интернет-сервис помощи студентам
Добрый день.
IDE PyCherm 2025.2.2 (Community Edition)
Python 3.11.

По Питону я прочитал лишь Таториал на python.org, потом возникла необходимость писать программу для работы.

Не знаю точно как определить версию Анаконды. Anaconda Navigator версии 2.7.0
Интернет ещё подсказал, что можно смотреть по файлу anaconda-<version>-<build>.json в папке установки Анаконды и её подпапке \conda-meta\.
Там я нашел файл, подпадающий под описание:

anaconda-project-0.11.1-py313haa95532_1

Но я сомневаюсь, что Анаконда у меня версии 0.11.1.
Смотрел в папке:
C:\ProgramData\anaconda3\conda-meta

Суть вопроса.
Есть готовый проект. После его постройки запускаю сделанный скрипт и он считывает путь своего нахождения не с той директории, где находится, а с папки
"C:\Users\Admin\AppData\Local\Temp\_ME<ц иферки>". Пробовал удалить конечную папку в данном пути, создается новая.

Код:

Модуль code.py:

Python
1
2
3
4
5
from funcs import *
 
# Получение пути к папке, откуда запущен скрипт программы
gl_dir = script_path_search()
...
Модуль funcs.py:

Python
1
2
3
4
5
6
7
8
9
10
11
12
...
 
# Функция поиска пути к запущенному скрипту программы
def script_path_search():
    # Получить директорию, из которой запущена программа
    global root_dir
    root_dir = Path(__file__).parent.resolve()
    buff_val=root_dir
    print("Каталог скрипта:", root_dir, "\n")
 
    return root_dir
...
Я много что пробовал для решения проблемы, ничего не помогло. Буду отвечать на Ваши вопросы, чтобы не удлинять свой.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.11.2025, 07:46
Ответы с готовыми решениями:

Скрипт считает директорию /root своей
Сам скрипт лежит в /var/www/dir/prog.py, запускаю через script.sh в /root, и при этом, prog.py...

Как в Python заставить скрипт пропускать хосты не доступные по сети?
Всем привет. Есть задача обойти куча cisco-хостов и прописать в них комманды. Как это сделать я...

Скрипт удаления директории
Доброго времени суток. Требуется оставить только директории /temp/2, /temp/n остальные удалить со...

7
115 / 100 / 15
Регистрация: 24.07.2019
Сообщений: 313
30.11.2025, 08:44
Переместите функцию на время отладки в основной модуль, выполняйте построчно, наблюдайте значения переменных
1
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
30.11.2025, 09:01
Цитата Сообщение от Greenfix Посмотреть сообщение
Как заставить скрипт видеть свою истинную директорию?
Цитата Сообщение от Greenfix Посмотреть сообщение
Есть готовый проект. После его постройки запускаю сделанный скрипт и он считывает путь своего нахождения не с той директории, где находится, а с папки
"C:\Users\Admin\AppData\Local\Temp\_ ME<ц иферки>".
Python
1
2
3
4
5
6
7
import os
 
#Получаем абсолютный путь файла исполняемого скрипта
file_path = os.path.abspath(__file__)
#Получаем абсолютный путь к каталогу, откуда запущен исполняемый скрипт
folder_path = os.path.dirname(file_path)
print(folder_path)
Добавлено через 1 минуту
или так:
Python
1
2
3
4
5
import pathlib as pth
fpth = pth.Path(__file__)
file = 'file.txt'
nfpth = fpth.parent.joinpath(file)
print(nfpth)
1
0 / 0 / 0
Регистрация: 30.11.2025
Сообщений: 3
30.11.2025, 12:37  [ТС]
Поместил функцию ловли пути скрипта в вызывающий её модуль, переписал её код:

Python
1
2
3
4
5
6
7
8
9
10
# Функция поиска пути к запущенному скрипту программы
def script_path_search():
    global root_dir
    # Получаем абсолютный путь файла исполняемого скрипта
    file_path = os.path.abspath(__file__)
    # Получаем абсолютный путь к каталогу, откуда запущен исполняемый скрипт
    root_dir = os.path.dirname(file_path)
    return root_dir
 
gl_dir = script_path_search()
При запуске после билда выдает путь к папке скрипта:



При попытке отладки выдает сообщение:



В инете прочитал, что отладка в PyCharm специфична, конкретных рекомендаций для своей версии не нашёл.
0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
30.11.2025, 14:17
Цитата Сообщение от Greenfix Посмотреть сообщение
При запуске после билда выдает путь к папке скрипта
Значит, PyCharm выполняет скрипт именно в том каталоге, во временной папке... запускайте скрипт отдельно, тогда увидите реальный путь.
0
0 / 0 / 0
Регистрация: 30.11.2025
Сообщений: 3
01.12.2025, 02:50  [ТС]
Цитата Сообщение от YuS_2 Посмотреть сообщение
запускайте скрипт отдельно, тогда увидите реальный путь.
Загуглил. В PyCharm я так и делаю. Как забилдить проект так, чтобы скрипт code.py запускался как отдельный? Тут инет не помог.
0
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,306
08.12.2025, 19:55
Цитата Сообщение от Greenfix Посмотреть сообщение
После его постройки запускаю сделанный скрипт
В питоне ничего не строится, это интерпретируемый язык. Есть сильное подозрение, что Вы используете PyInstaller, либо что-то подобное. Логика работы таких приложений в том, что они создают самораспаковывающийся архив, куда утрамбовывается интерпретатор, нужные либы и сами файлы скриптов. При запуске это все распаковывается во временную папку и запускается оттуда как обычное приложение питона. Отсюда такой экзотический рабочий каталог.
Переходите на виртульные окружения, либо делайте поддержку работы с аргументами командной строки и при запуске передавайте рабочий каталог через аргументы.
0
http://1248.site
131 / 119 / 20
Регистрация: 15.05.2012
Сообщений: 347
Записей в блоге: 10
03.01.2026, 21:37
Цитата Сообщение от Greenfix Посмотреть сообщение
скрипт code.py
В дебаг запускателе, а помоему в async дебагере есть модуль code одноименный файл вызывает конфликт импортов

сейчас в Pycharm я файлов code.py не создаю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.01.2026, 21:37
Помогаю со студенческими работами здесь

Получение корневой директории и логических дисков через скрипт
Здравствуйте. Меня интересует следующий вопрос - как с помощью скрипта узнать логические...

Как подключить готовый скрипт из файла .py в django чтоб при нажатии срабатывал скрипт и отдавал ответ
Всем привет. Я учусь по видеоурокам и немного не понимаю как связать джанго и скрипты пайтона. Есть...

Дано выражение вида "а x b", а и b - натуральные числа, x - сравнения, Истинно ли данное выражение?
Формат входных данных: В первой строке число а, во второй знак сравнения, в третьей - число b. Оба...

Нужно улучшить скрипт на распаковку файлов (Питон скрипт)
Мне нужна помощь. В интернете я нашёл нужный скрипт, но функционал хотелось бы улучшить В этом...

PyCharm не видит файл и/или директорию
Разбираю видео по созданию ботов из ютуба, но при запуске пишет, что такого файла или директории...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru