Tôi đang cố gắng đóng gói gói pychess vào tệp zip và nhập nó bằng zipimport, nhưng đang gặp phải một số sự cố.Zipimport với các gói
Tôi đã đóng gói nó thành một zipfile với kịch bản sau đây, mà làm việc:
#!/usr/bin/env python
import zipfile
zf = zipfile.PyZipFile('../pychess.zip.mod', mode='w')
try:
zf.writepy('.')
finally:
zf.close()
for name in zf.namelist():
print name
Tuy nhiên, tôi không thể làm nhập khẩu phức tạp trong mã của tôi:
z = zipimport.zipimporter('./pychess.zip.mod')
#z.load_module('pychess') # zipimport.ZipImportError: can't find module 'pychess'
#z.load_module('Utils.lutils') # zipimport.ZipImportError: can't find module 'Utils.lutils'
Utils = z.load_module('Utils') # seems to work, but...
from Utils import lutils
#from Utils.lutils import LBoard # ImportError: No module named pychess.Utils.const
Làm cách nào tôi có thể nhập, ví dụ: pychess.Utils.lutils.LBoard từ tệp zip?
Dưới đây là danh sách đầy đủ các module Tôi cần phải nhập khẩu:
import pychess
from pychess.Utils.lutils import LBoard
from pychess.Utils.const import *
from pychess.Utils.lutils import lmovegen
from pychess.Utils.lutils import lmove
Cảm ơn!
Thay đổi xây dựng kịch bản của tôi để sử dụng "zf.writepy ('pychess')" đã làm các trick. Cảm ơn! – tba