Есть ли способ получить имя текущего архива в Python?Python: Как получить имя текущего архива?
Что-то вроде
EggArchive.egg
Lib
---SomePythonFile.py
От SomePython.py, есть в любом случае, чтобы принести имя .egg?
Есть ли способ получить имя текущего архива в Python?Python: Как получить имя текущего архива?
Что-то вроде
EggArchive.egg
Lib
---SomePythonFile.py
От SomePython.py, есть в любом случае, чтобы принести имя .egg?
Переменная __file__
содержит путь к текущему файлу python. Так что если у вас есть структура:
.
`- your.egg
`-your_module.py
И в your_module.py
у вас есть функция:
def func():
print(__file__)
код:
import sys
sys.path.append('/path/to/your.egg')
from your_module import func
func()
напечатает:
/path/to/your.egg/your_module.py
Итак, в основном вы можете m анимируйте переменную __file__
, если вы знаете, где относительно ваш модуль находится внутри файла egg
, и получите полный путь до egg
.
Чтобы получить относительный путь к яйцеклетке в сценарии, что в файле яйца вы должны сделать:
def rel_to_egg(f):
my_dir = os.path.dirname(os.path.abspath(f))
current = my_dir
while not current.endswith('.egg'):
current = os.path.dirname(current)
return os.path.relpath(current, my_dir)
Теперь давайте говорить __file__ == '/test/my.egg/some/dir/my_script.py'
:
>>> print(rel_to_egg(__file__))
'../..'
это хорошо ... просто интересно, можно ли получить относительный путь к этому файлу ... без использования pkg_resources? –
Относительно чего? –
текущий файл ... что-то вроде .. \ lib \ lib1 \ <файлов в этой папке>? –
Вы имеете в виду, вы хотите узнать имя дистрибутива или полное имя файла яйца? У вас есть имя * распространения * спереди? –
имя дистрибутива ... –