私は2つのdllファイルと1つのpythonラッパーからなるライブラリを持っています。python cdllがモジュールを見つけることができません
私は現在、メインのpythonファイルと同じ親ディレクトリにあるこれらの3つのファイルに基づいたコードを持っています。私は開発を続ける前にリファクタリングを試みています。ライブラリのコードを自分のlib /ディレクトリに移動したいと思います。残念ながら、私が試したことは何も役に立ちません。
上記のPythonラッパーファイルにあるコードは、dllを完全に元の場所に読み込みます。しかし、Pythonは常にモジュールを見つけることができないと言って例外がスローされます..私はコピーを持っており、それがであることを確認するためにパスを貼り付け
from ctypes import *
import os
path = os.path.dirname(os.path.realpath(__file__))
_lib = ctypes.CDLL(os.path.join(path, 'my.dll'))
:私は、次のような新しい場所でそれをロードするさまざまな方法を試してみました事実、.dllファイルへの有効な絶対パス
このライブラリをサブフォルダに再配置するには、何が必要なのですか?私はいつもそれをそのままにしておくことができましたが、私は単に混乱を嫌うだけです。
をどうなりますか?親ディレクトリはシステムの検索パスにありますか? (あなたはWindowsを使用していますか?どのバージョンですか?そしてどのバージョンのPythonですか?) – Velociraptors
私はWindows 7 x64上でPython 2.7を使用しています。問題のディレクトリは絶対にパス上にありません。なぜそれがパス上にある必要があります必要があります私はそれを呼び出すスクリプトと同じディレクトリに2)私はそれに絶対パスを渡しているので、私は表示されません。今晩あなたの提案の結果を更新して家に戻します。 – jdsmith2816
'find_library()'はシステム検索パスを使います。親ディレクトリ*がパス上にあった場合、dllを移動する前にそれがなぜ機能するのか説明している可能性があります。そうではないので、より多くの情報が役立つかもしれません。 – Velociraptors