私は友人たちと協力プレイのエミュレータ体験をセットアップしようとしています(エミューコープそしてビズホークコープこれらは 2 つの異なるものですが、どちらも同じ症状を示します。古いコンピューターでは、ダウンロードと実行は問題なく機能しました。ただし、新しいコンピューターを組み立てて、Windows 7 から Windows 10 に移行しました (これが関連しているかどうかはわかりません)。
ここで、Lua を使用するスクリプトを実行しようとすると、モジュールが見つからないという例外が発生します。
NLua.Exceptions.LuaScriptException: [string "main"]:35: module 'bizhawk-co-op\sync' not found:
no field package.preload['bizhawk-co-op\sync']
no file 'C:\Users\Kevin\Desktop\Randomizer Stuff\Snes 9x COOP\coop-full-1key14-1\coop'
no file 'C:\Users\Kevin\Desktop\Randomizer Stuff\Snes 9x COOP\coop-full-1key14-1\coop\modes'
no file 'C:\Users\Kevin\Desktop\Randomizer Stuff\Snes 9x COOP\coop-full-1key14-1\coop\pl'
no file 'C:\Users\Kevin\Desktop\Randomizer Stuff\Snes 9x COOP\coop-full-1key14-1\coop\socket'
no file '.\bizhawk-co-op\sync.dll'
no file 'C:\Users\Kevin\Desktop\BizHawk-2.3\bizhawk-co-op\sync.dll'
no file 'C:\Users\Kevin\Desktop\BizHawk-2.3\loadall.dll'
ファイルsync.lua
は存在しているようですが、代わりに DLL ファイルを探しているようです。インターネットで検索しましたが、同様の問題は見つかりません。
注目すべきは、私が構築したばかりのスタンドアロン Lua インストールでも同じ問題が発生していることです。
C:\Users\Kevin\Desktop\Randomizer Stuff\Snes 9x COOP\coop-full-1key14-1>lua coop\coop.lua
lua: coop\coop.lua:1: module 'pl.class' not found:
no field package.preload['pl.class']
no file 'C:\Users\Kevin\Desktop\Randomizer Stuff\Snes 9x COOP\coop-full-1key14-1\coop'
no file 'C:\Users\Kevin\Desktop\Randomizer Stuff\Snes 9x COOP\coop-full-1key14-1\coop\modes'
no file 'C:\Users\Kevin\Desktop\Randomizer Stuff\Snes 9x COOP\coop-full-1key14-1\coop\pl'
no file 'C:\Users\Kevin\Desktop\Randomizer Stuff\Snes 9x COOP\coop-full-1key14-1\coop\socket'
no file 'C:\Users\Kevin\Desktop\lua-5.3.5.tar\lua\bin\pl\class.dll'
no file 'C:\Users\Kevin\Desktop\lua-5.3.5.tar\lua\bin\..\lib\lua\5.3\pl\class.dll'
no file 'C:\Users\Kevin\Desktop\lua-5.3.5.tar\lua\bin\loadall.dll'
no file '.\pl\class.dll'
no file 'C:\Users\Kevin\Desktop\lua-5.3.5.tar\lua\bin\pl.dll'
no file 'C:\Users\Kevin\Desktop\lua-5.3.5.tar\lua\bin\..\lib\lua\5.3\pl.dll'
no file 'C:\Users\Kevin\Desktop\lua-5.3.5.tar\lua\bin\loadall.dll'
no file '.\pl.dll'
stack traceback:
[C]: in function 'require'
coop\coop.lua:1: in main chunk
[C]: in ?
答え1
どうやら、これは PATH が間違っていることを示す非常にひどい方法のようです。特に、LUA_PATH という環境変数があると、実行しようとしていたことが上書きされるようです。ひどい。