Shipping part of Python standard library

守給你的承諾、 提交于 2019-12-20 07:35:14

问题


How do I ship some standard modules from Python together with my code?

I'm writing an add-on for Anki, for which I need Queue and threading modules from Python2.7 standard library.

When I try launching Anki, I get ImportError: No module named Queue. I assume that is because Anki does not ship with full Python interpreter and if I am missing any standard modules, I am to bundle them myself.

From Anki docs on addons:

Standard Modules

Anki ships with only the standard modules necessary to run the program - a full copy of Python is not included. For that reason, if you need to use a standard module that is not included with Anki, you’ll need to bundle it with your add-on.

So my question is: what steps do I take to bundle standard Python modules threading and Queue together with my add-on?

Note that add-ons in Anki are just Python scripts that have certain extra modules available.


回答1:


From the Anki doc:

For a simple one-file add-on, you can upload the .py file. For multi-file add-ons, please create a subfolder that acts as a Python package, and create a small .py file that imports that package. Using the Japanese support add-on as an example, the structure looks like:

japanese/file1.py
japanese/file2.py
japanese/__init__.py # can be empty; marks the folder as a package
japanese/<binary support files>
jp.py

To upload a multi-file add-on, please zip up the folder and the loader .py file and upload the zip.

The <binary support files> can be the modules you want.

Checkout html_cleaner and image-occlusion-enhanced on Github if you want to see how others do it.



来源:https://stackoverflow.com/questions/44556065/shipping-part-of-python-standard-library

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!