Na małym osadzonym urządzeniu linuksowym z ograniczoną przestrzenią próbuję umieścić dużą bibliotekę [10 Mb] Amazon (AWS) BotoCore (https://github.com/boto/botocore) w pliku zip, aby ją skompresować, a następnie zaimportować w moich skryptach Pythona używających zipimport, jak opisano w PEP273 (https://www.python.org/dev/peps/pep-0273/).Python PEP 273 i Amazon BotoCore
zmodyfikowałem mój skrypt posiadać następujące linie na początku:
## Use zip imports
import sys
sys.path.insert(0, '/usr/lib/python2.7/site-packages/site-packages.zip')
Witryna-pakiety plik ZIP ma tylko botocore w nim i sam katalog site-packages ma inne moduły używam, ale z wyłączeniem botocore, w nim.
Oto lista tego katalogu:
/usr/lib/python2.7/site-packages >> ls -rlt
total 1940
-rw-rw-r-- 1 root root 32984 Jun 8 12:22 six.pyc
-rw-r--r-- 1 root root 119 Jun 11 07:43 README
drwxrwxr-x 2 root root 4096 Jun 11 07:43 requests-2.4.3-py2.7.egg-info
drwxrwxr-x 2 root root 4096 Jun 11 07:43 six-1.9.0-py2.7.egg-info
drwxrwxr-x 2 root root 4096 Jun 11 07:43 python_dateutil-2.4.2-py2.7.egg-info
drwxrwxr-x 2 root root 4096 Jun 11 07:43 jmespath-0.7.0-py2.7.egg-info
-rw-rw-r-- 1 root root 2051 Jun 11 07:44 pygtk.pyc
-rw-rw-r-- 1 root root 1755 Jun 11 07:44 pygtk.pyo
-rw-rw-r-- 1 root root 8 Jun 11 07:44 pygtk.pth
drwxrwxr-x 2 root root 4096 Jun 11 07:44 futures-2.2.0-py2.7.egg-info
drwxrwxr-x 3 root root 4096 Jun 11 07:44 gtk-2.0
drwxrwxr-x 3 root root 4096 Jun 11 07:44 requests
drwxrwxr-x 3 root root 4096 Jun 11 07:44 dbus
drwxrwxr-x 3 root root 4096 Jun 11 07:44 dateutil
drwxrwxr-x 2 root root 4096 Jun 11 07:44 jmespath
drwxrwxr-x 3 root root 4096 Jun 11 07:44 concurrent
drwxrwxr-x 2 root root 4096 Jun 11 07:44 futures
drwxrwxr-x 2 root root 4096 Jun 12 10:42 gobject
drwxrwxr-x 2 root root 4096 Jun 12 10:42 glib
-rwxr-xr-x 1 root root 5800 Jun 12 10:42 _dbus_glib_bindings.so
-rwxr-xr-x 1 root root 77680 Jun 12 10:42 _dbus_bindings.so
-rwxr-xr-x 1 root root 1788623 Jun 12 11:39 site-packages.zip
A oto treść tego na kartę SD:
Moim problemem jest to, że mogę importować boto3 i import botocore tylko znaleźć, ale kiedy staram się korzystać z niektórych metod API w nim zawartych, otrzymuję wyjątki tak:
>> Unknown component: enpoint_resolver
lub
Po usunięciu pliku zip po rozpakowaniu go w katalogu lokacji-paczek i ponownym uruchomieniu komputera - mój skrypt działa poprawnie.
Jak mogę wykorzystać import zipfile do skompresowania tej ogromnej biblioteki? Dzięki!
Omg, oferując cały twój przedstawiciel! : O – Zizouz212
Co to jest rep, gdy chcesz odpowiedzi? – PhilBot
Chyba ... ale wciąż! – Zizouz212