Tidak dapat menjalankan 'op' daripada aplikasi Go
editor php Yuzai mungkin menghadapi masalah biasa apabila membangunkan aplikasi menggunakan bahasa Go, iaitu "op" tidak boleh dijalankan daripada aplikasi Go. Isu ini boleh menyebabkan aplikasi tidak berfungsi dengan betul atau memaparkan mesej ralat. Terdapat banyak cara untuk menyelesaikan masalah ini, yang boleh diselesaikan dengan menyemak sama ada pakej yang sepadan diimport dengan betul dalam kod, atau dengan memasang semula kebergantungan yang berkaitan. Juga, cuba alat atau kaedah lain untuk menangani masalah tersebut. Saya harap pengenalan dalam artikel ini dapat membantu pembangun yang menghadapi masalah ini.
Kandungan soalan
Saya cuba menulis aplikasi pembungkus go kecil di sekitar 1password cli boleh laku op
seperti ini:
package main import ( "fmt" "log" "os/exec" ) func main() { op := exec.command("op", "item", "list") out, err := op.output() if e, ok := err.(*exec.exiterror); ok { log.fatal(e, ": ", string(e.stderr)) } fmt.println(string(out)) }
Namun, saya terus mendapat ralat berikut:
2023/04/13 09:48:51 exit status 1: [error] 2023/04/13 09:48:51 error initializing client: connecting to desktop app: read: connection reset, make sure the cli is correctly installed and connect with 1password cli is enabled in the 1password app
Tetapi apabila saya melakukan perkara yang sama dari skrip python seperti ini:
#!/usr/bin/env python import subprocess subprocess.run(["op", "item", "list"])
...Saya mendapat hasil yang hebat.
Menariknya, apabila saya memanggil skrip python (bernama op.py
) daripada aplikasi go, ia berfungsi dengan baik (aplikasi go yang diubah suai kelihatan seperti ini):
package main import ( "fmt" "log" "os/exec" ) func main() { op := exec.Command("/usr/bin/python3.11", "./op.py") //op := exec.Command("op", "item", "list") out, err := op.Output() if e, ok := err.(*exec.ExitError); ok { log.Fatal(e, ": ", string(e.Stderr)) } fmt.Println(string(out)) }
Saya boleh menguji bahawa ia dicetak oleh aplikasi go dan bukan skrip python kerana jika saya mengeluarkan fmt.printf(...)
tiada apa yang dicetak.
Untuk meringkaskan:
- pergi ->
op
: tidak berfungsi - python(
./op.py
)->./op.py
)->op
: berfungsi dengan baik - pergi -> python (
./op.py
) ->./op.py
) ->op
Saya menghadapi masalah yang sama semasa mengakses
daripada persekitaran mayapyenv
. Saya rasa masalahnya ialah python
boleh laku pyenv dimiliki oleh pengguna (saya).
Menukar pemilikan kepada root:root penterjemah python dan direktori tempat tinggalnya sebenarnya membantu. Tidak pasti apa yang berlaku di sebalik tabir. pyenv
虚拟环境访问 op
时遇到同样的问题。我认为问题是 pyenv 的 python
Berikut ialah langkah-langkah (saya gunakan untuk mencipta persekitaran maya supaya ia tidak menggunakan pautan sym - kerana pautan sym akan menunjuk ke fail milik root):
$ python -m venv --copies .venv $ .venv/bin/python -c "import subprocess; subprocess.call(['op', 'signin'])" [ERROR] 2023/05/16 16:01:18 connecting to desktop app: read: connection reset, make sure the CLI is correctly installed and Connect with 1Password CLI is enabled in the 1Password app # chown -R root:root .venv/ $ .venv/bin/python -c "import subprocess; subprocess.call(['op', 'signin'])" Select account [Use arrows to move, type to filter]
Ikhtisar: Tukar pemilikan boleh laku yang menghasilkan proses anak --copies
(dan direktori yang ada) kepada root:root
Lihat juga siaran ini pada 1kata laluan yang kelihatan seperti isu yang sama: op
子进程的可执行文件(及其所在目录)的所有权更改为 root:root
https://1password.community/discussion/135768/call-from-a-go-program-cli-
Atas ialah kandungan terperinci Tidak dapat menjalankan 'op' daripada aplikasi Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Perpustakaan mana yang dibangunkan oleh syarikat besar atau projek sumber terbuka yang terkenal? Semasa pengaturcaraan di GO, pemaju sering menghadapi beberapa keperluan biasa, ...

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

GO Pointer Syntax dan menangani masalah dalam penggunaan perpustakaan Viper semasa pengaturcaraan dalam bahasa Go, adalah penting untuk memahami sintaks dan penggunaan petunjuk, terutama dalam ...

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...

Mengapa lelaran peta di GO menyebabkan semua nilai menjadi elemen terakhir? Dalam bahasa Go, ketika berhadapan dengan beberapa soalan wawancara, anda sering menemui peta ...

GO LANGUAGE SLISE INDEX: Mengapa kepingan tunggal elemen memintas dari Indeks 1 tanpa ralat? Dalam bahasa Go, kepingan adalah struktur data yang fleksibel yang boleh merujuk kepada bahagian bawah ...
