2012-02-14 3 views
3

これをモジュールとしてパッケージ化するのに間違っていることを誰かに教えてもらえますか? https://github.com/xamox/python-zxing。次のようにPythonコードをモジュールにするためには何をする必要がありますか?

私の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='[email protected]', 
    packages=['zxing'], 
) 

私は "輸入zxing" をやろうとしています。私はsetup.pyをインストールし、/usr/local/lib/python2.7/dist-packages/に入れますが、import 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' 
+0

このモジュールのファイル名は何ですか?あなたのローカルディレクトリで動作しますか? –

+0

ローカルディレクトリで動作しますが、setup.py installを実行してインポートしようとすると、次のエラーが表示されます。 https://gist.github.com/b51c37cb5ac13557539d – xamox

+0

エラーメッセージの実際のテキストをこの質問。リンクを追跡することは容認できません。エラーメッセージの単語を見つけて、それらをコピーしてください。 ** **その言葉で質問を更新**してください。また、あなたのモジュールをインストールした 'setup.py'スクリプトを含めてください。 –

答えて

2

持っzxing/__init__.py

from zxing import * 

または、はるかに良いに次のコードを配置する必要がありますコメントに表示された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がある場合は、削除します。

+0

これは私の問題でした。なんらかの理由で、スクリプトは最後から敷設されていました。また、ファイルを__init__.pyに変更しなければなりませんでした。zxing.zxingをインポートする必要があったため、ちょっとしたおかげです。 – xamox

+2

私は理解できません "ファイルを" __init __。py "または" init.py "に変更する必要がありました。私の答えの最後の段落を読んだことがありますか? –

6

import zxing.zxing 

すべてが(dir(zxing.zxing) = ['BarCode', 'BarCodeReader', ...])動作します。おそらくあなたは、人々はちょうどそれはあなたが望むものである場合

import zxing 

を使用する必要が欲しい、あなたは

from zxing import BarCode, BarcodeReader, ... 
+0

実際には動作しませんでした。このディレクトリからPythonを実行すると、ローカルのように、そのディレクトリから実行すると動作します。私がpython setup.py installを実行した後に何が起こるのでしょうか?ipythonを開いて次のようになります: https://gist.github.com/b51c37cb5ac13557539d – xamox

関連する問題