2015-11-03 2 views
0

Ситуация такова: у меня есть библиотека Python, которая служит для связи с другим оборудованием с использованием настраиваемого протокола. Тот, кто использует это решение, нуждается в библиотеке в коде C для реализации другого конца сообщений.Как скопировать файлы из пакета Python (сайты-пакеты) в каталог?

Я понял, что простой способ сделать это - поместить файлы в пакет Python и предоставить команду, которая копирует файлы в выбранный каталог. Файлы связаны правильно, но я не могу понять, как их получить. Я надеялся, что это будет так легко:

# 'pkgname' is a placeholder for package in site-packages. 
shutil.copy('pkgname' + os.sep + 'filename', os.getcwd()) 

Но я получаю:

FileNotFoundError: [Errno 2] No such file or directory: 'pkgname\\filename' 

Любое предложение о том, как решить проблему копирования? Или сама проблема?

+0

У вас действительно есть имя папки '' pkgname \\ filename'' ?! –

+0

Конечно, нет, это было просто сказать, что это такое. Лучше, если я напишу ? Я решил, что нужно указать его, поскольку сайт-пакеты находятся в sys.path. Файлы находятся в пакете. –

+0

Вам нужно создать путь к папке с помощью объекта 'os.path', например' join' и 'dirname', а затем указать его как параметр' copy' –

ответ

0

Найден рабочим решение, главное, что я искал была первой линией:

pkgdir = sys.modules['<mypkg>'].__path__[0] 
fullpath = os.path.join(pkgdir, <myfile>) 
shutil.copy(fullpath, os.getcwd()) 

Также сделал глупую ошибка не импортировать модуль в вопросе; догадаться, что очевидные ошибки сложнее всего найти.

Смежные вопросы