2014-12-14 3 views
0

Я использую скрипт под virtualenv, что требует bzrlib пакет, который не доступен в моем virtualenv, но входит в мою систему питона пакетов: /usr/lib/python2.7/dist-packages/bzrlib/Append одну папку пакет sys.path

Если я хочу, чтобы использовать его, одним из вариантов является расширение sys.path, но я должен был бы включить родительскую папку /usr/lib/python2.7/dist-packages/, которая содержит много других пакетов, которые я не хочу предоставлять. Есть ли простой способ включить только пакет bzrlib?

+1

Что о создании ссылки в другой директории и импорта используя это? Или даже в вашем собственном проекте. –

+0

@ReutSharabani Я просто сделал это, спасибо за подтверждение той же идеи. Я думал, что может быть какая-то настройка, которая позволит мне расширить sys.path, как объяснено. – vlad

+0

@unutbu, спасибо за предложение. Я перейду с символической ссылкой, чтобы избежать изменения инструкций импорта в исходном скрипте/пакете. – vlad

ответ

1

Как насчет создания ссылки в другом каталоге и импорта с помощью этого? Или даже в вашем собственном проекте.

ln -s /package/dir/path /project/dir/path 

Если вы должны загрузить его удаленно, вот ссылка предоставлена ​​@unutbu, показывающий, как это сделать:

How to import a module given the full path?

import imp 

foo = imp.load_source('module.name', '/path/to/file.py') 
foo.MyClass() 
Смежные вопросы