Как получить абсолютный путь к импортированному файлу python - PullRequest
0 голосов
/ 28 мая 2020

У меня следующая структура кода:

config_dir
    config.py

main.py

В config.py есть следующий метод:

def get_path():
    # TODO 
    return "the absolute path of config.py, not the path of the main.py that import this config module"

в main.py, я импортирую модуль config и вызовите метод конфигурации get_path

from config_dir import config

print(config.get_path())

Я хотел бы напечатать абсолютный путь config.py, а не путь к main.py, который импортирует этот модуль конфигурации

Я хотел бы, как кодировать это, спасибо!

Ответы [ 3 ]

2 голосов
/ 28 мая 2020

Вы можете использовать файл , чтобы получить абсолютный путь к импортированному модулю. Например:

from config_dir import config

print(config.__file__)
>>> import datetime
>>> datetime.__file__
'/usr/local/Cellar/python@2/2.7.17/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/datetime.so'
>>> 
2 голосов
/ 28 мая 2020

Вы можете использовать это:

import os

def get_path():
    return os.path.abspath(__file__)
1 голос
/ 28 мая 2020

Попробуйте следующий код:

import os
os.path.abspath(config)

edit-1 (кредиты: Милан Чермак)

Добавьте следующий код в config.py


import os

def get_path():
    return os.path.abspath(__file__)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...