1

コンパイルされたPythonモジュールがいくつかあります。それらは単一に配置され.soます(ランタイムリンクを回避するために、モジュール間のシンボル依存関係があります)が、いくつかのシンボリックリンクはこれを示しています.so

foo.so -> liball.so
bar.so -> liball.so
liball.so

このようにして、import foo(Pythoninitfoo()はで定義された呼び出しを呼び出しますliball.so)またはimport bar(呼び出しinitbar())を行うことができます。

このアプローチがWindowsで機能するかどうか疑問に思っていますか?

4

1 に答える 1

0

おそらくそうではありませんが、あなたはあなたの目標を達成することができます

import sys
import liball
sys.modules['foo'] = liball
sys.modules['bar'] = liball

複数の場所にインポートする必要がある場合、または

import liball as foo, libalb as bar, liball

1か所でのみ必要な場合。

ただし、との区別をinitfoo()保持initbar()することはできず、モジュールに両方のモジュールに含まれるすべてのものが効果的に含まれるように、両方を行う必要がある場合があります。

fooと同じ記号が部分的に含まれているが、意味が異なる場合bar、このアプローチは機能しません。ただし、ファイルをコピーするだけで済みます。これは必要以上のディスクスペースを占有しますが、それほど害はありません、私見。

于 2012-10-05T09:55:22.987 に答える