質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

675閲覧

【Docker/リモート/VSCode】 コード実行の起点を変えたい

pekopekoapricot

総合スコア24

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/09/16 15:12

編集2020/09/16 15:14

現在、DockerとVSCodeを使用してpythonリモート環境を構築しています。

現在のディレクトリは下記のような構成になっています

home/ └ app/ └ work/ └ src/ ├ app/ │ └ app_test.py │ └ domain/ └ domain_test.py

python 実行時の起点を src/配下にしたかったので、launch.jsonのcwdを以下のように書き換えました。

json

1{ 2 "version": "0.2.0", 3 "configurations": [ 4 { 5 "name": "Python: Current File", 6 "type": "python", 7 "request": "launch", 8 "program": "${file}", 9 "console": "integratedTerminal", 10 "cwd": "/home/app/work/src/" 11 } 12 ] 13}

そして、src配下のapp_test.py を実行し、 domain_test.pyをimportしようとしましたが、下記のようにModuleNotFoundErrorになってしまいます。
(※実行時はVSCode右上の▷ボタンを押しています)

python

1from domain.domain_test import DomainTest
[app@38546444616e src]$ /usr/local/bin/python /home/app/work/src/app/app_test.py Traceback (most recent call last): File "/home/app/work/src/app/app_test.py", line 1, in <module> from domain.domain_test import DomainTest ModuleNotFoundError: No module named 'domain'

src配下から実行しているなら domain.domain_testでimportできると思っていたのですが・・・
パスの指定の仕方などが間違っているのでしょうか・・・

お時間ある方で知識をお持ちの方いらっしゃいましたらご助力頂けますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

一番簡単なのは、Dockerfile か Compose ファイルに PYTHONPATH を設定してしまうことです:

docker

1ENV PYTHONPATH /home/app/work/src/

または:

yaml

1version: "3.8" 2services: 3 python: 4 image: python 5 environment: 6 PYTHONPATH /home/app/work/src/

この場合、必要なのはコマンドの実行の起点ではなく、
Python がパッケージ探索を行うときのパスとなります

参考: Answer: Expand Python Search Path to Other Source

投稿2020/09/16 16:28

編集2020/09/16 16:30
y_shinoda

総合スコア3272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問