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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

824閲覧

VScodeでpython不具合

biotoap2

総合スコア3

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/12/01 09:50

vscodeで質問です。pythonコードを書いてます。

ファイル「main.py」でコードを書いていたのですが、これが急に全文、黄色の波線がつきました。コードもコメントも本当に余すことなく全文です。

適当な行にカーソルを合わせると、左端に豆電球マークが出てきて、「クイックフィックス、renameなんたら」みたいなことが書いてあり、クリックすると、ひとまず症状は治ります。しかし、クリックした時点でファイルの名前が「main.py」から「__main___1.py」に変わってしまうのです(アンダーバーと1が付加されている)。嫌なのでファイル名を元に戻すと、また全文黄色波線復活します。何度やってもそうなります。

原因は分かりませんが、きっかけはありまして、それまで使っていた仮想環境フォルダを削除して、新しく作り直し、元の仮想環境フォルダで書いていた「main.py」を、新しく作った仮想環境フォルダにそのまま引っ越したのです。それが始まりでした。もともと使っていた仮想環境フォルダのパスと、新しく作った仮想環境フォルダのパスは異なります。

どうやって直せばいいのでしょうか?

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

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

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

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

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

TakaiY

2022/12/01 09:59

「仮想環境フォルダ」というのは、どのようなフォルダを指していますか? venvなどのフォルダですか? 「仮想環境フォルダで書いていた「main.py」」とありますが、main.pyはその仮想環境フォルダの中にあるのでしょうか? フォルダの構成を教えてください。
biotoap2

2022/12/01 10:10

ありがとうございます。全くお察しの通りです。 desktop > python_development > projectA > __main__.py という階層構造になっていました。projectAのフルパスを●●●とすると、 「python -m venv ●●●」 として仮想環境を作成したという意味です。 しかし、ある事情からprojectAを丸ごと削除し、代わりに desktop > python_development > projectA' > test1 を作成し、このtest1を仮想環境としました。test1のフルパスを◆◆◆とすると、 「python -m venv ◆◆◆」を実行したということです。 そして、projectAの中で使用していた__main__.pyを、test1のほうへそのまま移しました。 多分、きっかけはそれだと思うのですが、さすがに全ての行動を覚えているわけではないので、これは推測になります。すいません。
TakaiY

2022/12/01 10:36

回答はここではなく、質問欄を編集して書くと、見てくれた人にわかりやすいです。 また、質問欄はmarkdown記法が標準なので __main__.py は強調表示として扱われてしまいます。 そのまま表示させるためには、バッククォート(`)で囲む必要があります。 これも修正するといいでしょう。 ファイル名が __main__.pyになっています。 このファイル名は特殊な意味を持っているのですが、それは意図したものですか
biotoap2

2022/12/01 10:43

>回答はここではなく、質問欄を編集して書くと、見てくれた人にわかりやすいです。 えっと、こちらに書くのがいいのでしょうか? すいません、まだ使い方がよく分かっていないところがあります。 >また、質問欄はmarkdown記法が標準なので`__`main`__`.py は強調表示として扱われてしまいます。 そのまま表示させるためには、バッククォート(`)で囲む必要があります。 これも修正するといいでしょう。 ファイル名を`__`main`__`.pyにしているのは、何となくそれがいいのかなと思って、あまり深い考えはありませんでした。プロの方々の猿真似です。
guest

回答1

0

ベストアンサー

まず、仮想環境フォルダの「中」にファイル/モジュールを作るというのは良い方法ではありません。仮想環境のフォルダはその仮想環境のためにあるものです。

なので、
desktop > python_development > projectA'
がプロジェクトのフォルダ(= その中にプロジェクトのファイルがある)のであれば、仮想環境は別のフォルダに作ります。フォルダ名は、venv や .venv とするのが一般的です。

desktop > python_development > projectA' > venv
のようなファイル名になります。 projectA' フォルダとは別のところに作っても構いません。

投稿2022/12/01 10:32

編集2022/12/01 10:34
TakaiY

総合スコア12745

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

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

biotoap2

2022/12/01 10:40 編集

> また、`__`main`__`.pyというファイル名は、モジュールの起動ファイルとなるファイルの名前ですので、vscodeがフォルダ構成から、main.pyというファイルがそのためのファイルだと判断して警告したのだろうと思います。 最後のこの文章がよく分かりませんでした。要はファイル名がよろしくないということでしょうか? 今は「`__`main`__`.py」としていますが、「main.py」にしたほがいいのでしょうか?
TakaiY

2022/12/01 11:38 編集

> ファイル名を`__`main`__`.pyにしているのは、何となくそれがいいのかなと思って、あまり深い考えはありませんでした。プロの方々の猿真似です。 ということであれば、その名前は使うべきではありません。 特殊な意味を持っています。 https://architecting.hateblo.jp/entry/2020/12/28/233254 ここに説明されていますが、読んでも意味がわからなければ、とりあえずはそういう名前のファイルがあってパッケージを作るときに必要な場合があると覚えておいてください。 他にも、__init__.py など アンダーバーが付いているファイル名は特別な意味を持つものが多いので、使うべきではありません。 変数名についても先頭に付くアンダーバーは特殊な意味を持つので、意味がわかるまでは不必要に使うべきではありません。
biotoap2

2022/12/01 11:52

何か慣習的につけるメインのソースコードファイル名ってありませんでしたか? アンダーバーなしで、「main.py」とするのがいいのでしょうか? それともそんな慣習はありませんか? 僕の記憶違いかな。
TakaiY

2022/12/01 12:30

一般的には、無いと思いますよ。 djangoなどのフレームワークを使う場合はあるかもしれません。 どのような名前にするかは完全に好みですね。
biotoap2

2022/12/01 12:34

そうだったんですね! 何やら勘違いをしていたようです! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問