[英]What do I need to do to my python code to get it to be a module?
有人可以告訴我,我把它打包成一個模塊是錯誤的: https : //github.com/xamox/python-zxing 。
我的setup.py如下:
#!/usr/bin/env python
from distutils.core import setup
setup(
name='zxing',
version='0.1',
description="wrapper for zebra crossing (zxing) barcode library",
url='http://simplecv.org',
author='Ingenuitas',
author_email='public.relations@ingenuitas.com',
packages=['zxing'],
)
我想做“進口zxing”。 我做setup.py install,把它放在/usr/local/lib/python2.7/dist-packages/中,但導入zxing不起作用。
我收到以下錯誤:
In [1]: import zxing.zxing
---------------------------------------------------------------------------
ResolutionError Traceback (most recent call last)
/home/xamox/<ipython-input-1-9ff7d0755c55> in <module>()
----> 1 import zxing.zxing
/usr/local/bin/zxing.py in <module>()
3 __requires__ = 'zxing==0.1'
4 import pkg_resources
----> 5 pkg_resources.run_script('zxing==0.1', 'zxing.py')
/usr/lib/python2.7/dist-packages/pkg_resources.pyc in run_script(self, requires, script_name)
465 ns.clear()
466 ns['__name__'] = name
--> 467 self.require(requires)[0].run_script(script_name, ns)
468
469
/usr/lib/python2.7/dist-packages/pkg_resources.pyc in run_script(self, script_name, namespace)
1192 script = 'scripts/'+script_name
1193 if not self.has_metadata(script):
-> 1194 raise ResolutionError("No script named %r" % script_name)
1195 script_text = self.get_metadata(script).replace('\r\n','\n')
1196 script_text = script_text.replace('\r','\n')
ResolutionError: No script named 'zxing.py'
當你這樣做
import zxing.zxing
一切正常( dir(zxing.zxing) = ['BarCode', 'BarCodeReader', ...]
)。 可能你想讓人們只需要使用
import zxing
如果這是你想要的,你必須將以下代碼放到zxing/__init__.py
from zxing import *
或者更好
from zxing import BarCode, BarcodeReader, ...
查看您在評論中顯示的URL的堆棧跟蹤:
/usr/local/bin/zxing.py in <module>()
3 __requires__ = 'zxing==0.1'
4 import pkg_resources
----> 5 pkg_resources.run_script('zxing==0.1', 'zxing.py')
這表明它正在嘗試從/usr/local/bin/zxing.py
加載一些guff,其中包含的代碼不在當前版本中,例如“import pkg_resources”。 看起來像以前的實驗中的碎片。 擺脫它。
現在你有一個干凈的甲板:
有一個空的__init__.py
和一個源文件包似乎毫無意義。 我建議您刪除__init__.py
並刪除所有其他實驗的痕跡(尤其是“構建”目錄)。 如果有一個文件夾/usr/local/lib/python2.7/dist-packages/zxing
,請將其刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.