0
私はPythonでdllをロードしようとしています。絶対パスを入力した場合にのみ実行できます。私は、相対パス、または環境変数を使用したいと思います。私が正確なパス(C:...)を指定すると、動作する唯一のものは、dllをpyファイルと同じフォルダに直接ビルドしようとしましたが、それはまだ動作しませんでした。私が持っているもの
:python:dllインポートの相対パスを指定できません
MY_DLL = r'c:\full_path\output\Win32\Debug\my.dll'
#MY_DLL = r'my.dll' #this doesn't work but it is what I want
#MY_DLL = r'$(env_var)\dir\output\$(Platform)\$(Configuration)\my.dll' #this doesn't work either but would be good too
ヘルプ?私はしかし、あなたは非常に簡単にはos.path使用してパスを操作することができ、窓にCDLLまたは一般にはctypesについて本当に多くのことは知らない
はあなたが使用することができますが、 'os.path.expandvars' ? – mgilson
私はosインポートパスから行った MY_DLL = os.path.expandvars(r '$(env_var)\ dir \ output \ $(プラットフォーム)\ $(Configuration)\ my.dll')しかし、 =とNameErrorの後に置くものを正確にロードします: 'os'は定義されていません。申し訳ありません、私はそれを右に入れましたか? – Thalia
'from os import path'の代わりに' import os.path'を試してください。 '$(env_var)'を '$ {env_var} 'に変更する必要があるかもしれません - わかりません。名前の誤りはあなたがosをインポートしなかったからです、あなたはosからパスをインポートしました。 (あなたがやったやり方では、os.pathはあなたの名前空間ではただのパスとして知られています) – mgilson