LinuxでPythonを使用してターミナルを開いたときのエラーを解決する方法

王林
リリース: 2023-05-02 17:43:32
転載
1304 人が閲覧しました

Python を使用して Linux でターミナルを開くと、エラーが発生します

シナリオ 1: jenkins で自動化されたタスクを実行し、テスト タスクを実行するときに jenkins ユーザー (sudo 権限を持つ) を使用します。 、テスト スクリプトは Linux にあります。実行時 (バックグラウンド)、次のコードを実行するとエラーが発生します:

os.system(f"/usr/bin/konsole -e {cmd_orin2_10s}")
ログイン後にコピー

シナリオ 2: テスト スクリプトの実行には問題ありません。ローカルで実行する場合、root ユーザーを使用でき、コマンド ウィンドウを通常どおり開くことができます

エラー ログ:

17:44:03  qt.qpa.xcb: could not connect to display 
17:44:03  qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
17:44:03  This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
17:44:03  
17:44:03  Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.
ログイン後にコピー

解決策:

シナリオ 1 とシナリオ 2 を比較すると、環境変数が原因であるはずです。環境変数と表示されたウィンドウから問題を見つけるには、 export DISPLAY=":0.0"

補足: pycharm は問題なく動作しますが、ターミナル (端末) ではさまざまなモジュールが実行されます。問題

問題の説明

多くの場合、pycharm の使用に慣れていてすべてを完了していますが、多くのパスの問題を無視しています。場合によっては、他の環境やプラットフォームと対話する必要がある場合があります。たとえば、 , Python を呼び出す C# プログラムを作成すると、ターミナルにパラメータを渡して起動するのと同じになります。このとき、さまざまな No module 問題が表示されます。その理由は、外部環境が Python インターフェイスを呼び出すためです。プログラム内の各モジュールを検索しますが、これらのモジュールが環境変数に追加されていない場合は見つかりません。そのため、使用する各 py ファイルの先頭で次のステートメントを使用することをお勧めします

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../')
ログイン後にコピー
  • #この操作により、現在のファイルの上位ディレクトリ全体が環境変数に追加されるため、上位ディレクトリ以下のすべてのファイルを簡単に呼び出すことができます

  • 多くのディレクトリ レベルがあり、現在のディレクトリが深い場所にある場合は、このコマンドを少し変更して、使用するすべてのファイルとディレクトリを含めることができます (例: Yes

    #) #
    sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../../')
    ログイン後にコピー
    もちろん、現在のフォルダーの下にあるすべてのディレクトリを呼び出したいだけの場合は、
  • sys.path.append(os.path.dirname(os.path.abspath(__file__)) + './')
    ログイン後にコピー
    を使用できます。

    以上がLinuxでPythonを使用してターミナルを開いたときのエラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!