php Xiaobian Yuzai は、Go 言語を使用してアプリケーションを開発するときによくある問題、つまり Go アプリケーションから "op" を実行できないという問題に遭遇することがあります。この問題により、アプリケーションが適切に機能しなくなったり、エラー メッセージが表示されたりする可能性があります。この問題を解決するには多くの方法がありますが、対応するパッケージがコードに正しくインポートされているかどうかを確認するか、関連する依存関係を再インストールすることで解決できます。また、問題に対処するために他のツールや方法も試してください。この記事の概要が、この問題に遭遇した開発者の助けになれば幸いです。
次のような 1password cli 実行可能ファイル op
を中心とした小さな go ラッパー アプリケーションを作成しようとしています:
ただし、次のエラーが発生し続けます:
リーリーしかし、次のように Python スクリプトから同じことを実行すると:
リーリー...素晴らしい出力が得られます。
興味深いことに、go アプリケーションから Python スクリプト (op.py
という名前) を呼び出すと、正常に動作します (変更された go アプリケーションは次のようになります)。
リーリー
fmt.printf(...) を削除しても何も出力されないため、Python スクリプトではなく go アプリケーションによって出力されることをテストできます。
###結論は:###
go ->
oppython(
./op.py: 正常に動作しています
go -> python (
./op.py: 正常に動作しています
opにアクセスするときにも同じ問題が発生しました。問題は、 pyenv の
python 実行可能ファイルがユーザー (私) によって所有されていることだと思います。
所有権を root:Python インタプリタのルートとそれが存在するディレクトリに変更すると、実際に役に立ちます。舞台裏で何が起こっているのかはわかりません。
これが手順です (シンボリックリンクがルート所有のファイルを指すため、シンボリックリンクを使用しないように、--copyies を使用して仮想環境を作成しました):
結論: op
子プロセス (およびそれが存在するディレクトリ) を生成した実行可能ファイルの所有権を
に変更します。
同じ問題であると思われる 1password に関するこの投稿も参照してください:
以上がGo アプリケーションから 'op' を実行できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。