質問

どのように私はそれが別の地元であるようなC-Pythonモジュールをコンパイルするには?例えば。私は「バー」という名前のモジュールと「のmymodule」という名前の別のモジュールを持っている場合、それは「輸入mymodule.bar」?

を経由して輸入されるように、どのように私は、「bar」をコンパイルします

(これは悪い言葉で表現されている場合申し訳ありませんが、私はそれのための適切な用語が何であったかわからなかった。)

私はsetup.pyで次のことを試してみましたが、動作していないよう:

from distutils.core import setup, Extension

setup(name='mymodule',
      version='1.0',
      author='Me',
      ext_modules=[Extension('mymodule', ['mymodule-module.c']),
                   Extension('bar', ['bar-module.c'])])

編集

おかげでアレックス。だから、これは私が使用して終了するものである。

from distutils.core import setup, Extension

PACKAGE_NAME = 'mymodule'

setup(name=PACKAGE_NAME,
      version='1.0',
      author='Me',
      packages=[PACKAGE_NAME],
      ext_package=PACKAGE_NAME
      ext_modules=[Extension('foo', ['mymodule-foo-module.c']),
                   Extension('bar', ['mymodule-bar-module.c'])])

もちろんフォルダという名前で "のmymodule" を含む__init__.pyます。

役に立ちましたか?

解決

の指示ここのとおりです。

  

拡張子( 'foo' で、[ 'SRC / foo1.c'、   'SRC / foo2.c'])

     

に住んでいる拡張子を記述   ルートパッケージ、しばらく

     

拡張子( 'pkg.foo'、[ 'SRC / foo1.c'、   'SRC / foo2.c'])

     

で同じ拡張子を記述   PKGパッケージ。ソースファイルと   オブジェクトコード得において同一であります   どちらの場合も、唯一の違いは、   ここで、ファイルシステム内の(従って   どこPythonの名前空間の階層内)   結果の拡張子が住んでいます。

パッケージは、常にモジュール__init__を含むディレクトリ(またはzipファイル)で、覚えておいてください。パッケージ本体だモジュールを作成するには、そのモジュールは__init__と呼ばれ、パッケージのディレクトリ(またはzipファイル)の下で暮らすことになります。私はCのそれをやったことがありません。それが直接それを行うには動作しない場合、モジュールなどに名前を付けます代わりに、そして_init__init__.pyfrom _init import *from ... import *の非常にいくつかの合法的な用途の一つを; - )行います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top