Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 5, 2018 15:25:21

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Как правильно автоматически проверить импорт модуля в Python 2.6?

Здравствуйте.

Есть Python 2.6.4, есть большой список модулей, которые должны включиться в “бинарник”. Я написал такой скрипт для проверки этих модулей перед “заморозкой”:

  
import traceback                                                                   
                                                                                    
packages = ('Cython', 
            'bbfreeze',             
            'altgraph',
             ...
             # about 50 packages
           )                        
                                                                                    
for package in packages:                                                           
    print 'import %s' % (package,),                                                                                                                                          
    try:                                                                           
        __import__(package)                                                        
        print 'ok'                                                                 
    except:                                                                        
        print 'Can not import module "%s"' % (package,)                            
        traceback.print_exc(

И вот наконец, собрал все нужные библиотеки, скрипт отрабатывает, всё ok. Но потом выясняется, одна библиотека не импортится, хотя скрипт показывает, что ok:

 >>> import altgraph
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named altgraph

Есть подозрения, что эта функция __import__ работает как-то не правильно, к примеру есть жалобы такого плана:
http://www.rupython.com/python-__import__-8887.html

Но это другой случай. Кто знает в чём проблема и как это решить?



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#2 Сен. 6, 2018 11:45:41

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Как правильно автоматически проверить импорт модуля в Python 2.6?

Короче, не нашел чисто питонячьего решения, сделал вот так (bash script):

  
declare -a PACKAGES=('Cython' 'altgraph' 'bbfreeze' ... )
 
for package in "${PACKAGES[@]}"
do
    python -c "import $package"
done



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Отредактировано Master_Sergius (Сен. 6, 2018 13:50:35)

Офлайн

#3 Сен. 11, 2018 21:17:18

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 323
Репутация: +  13  -
Профиль   Отправить e-mail  

Как правильно автоматически проверить импорт модуля в Python 2.6?

при самой заморозке надо указать, какие модули замораживать вместе с интерпретатором и скриптом, тогда все будет нормально импротировать



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version