私はここや他の場所で同じことを尋ねてきましたが、彼らが提供している回答は機能していないか、その答えを誤解しています。カスタムディレクトリをインポートする
私はPython 3を使用しています。CityNames.py
をCities.py
にインポートする必要があります。
私は、次のディレクトリがあります。
CityBorders
| Cities.py
| CityNames.py
やファイルに次のコード:
Cities.py
from CityNames import *
from random import choice
class City:
def __init__(self):
self.set_name()
def set_name(self):
if hasattr(self, 'name'):
city_names[self.name] = None
self.name = choice([n for n, c in city_names.items() if c is None])
city_names[self.name] = self
def get_cities(count):
return [City() for _ in range(min(count, len(city_names)))]
cities = get_cities(20)
print([c.name for c in cities])
CityNames.py
をこのコードでは、プログラムが正しく実行するようだが、PyCharmは、言って致命的なエラーを示している「This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Top-level and class-level items are supported better than instance items.
」それは言葉CityNames
とcity_names
の下に赤い下線が追加されます。
私は(from .CityNames import *
)CityNames
前.
を追加すると、エラーが離れて行くが、コードは、私はそれを実行しようとする私に、次のエラーコードを与える作業を停止します。
Traceback (most recent call last):
File "S:/Makai/Projects/Artifitial Art/CityBorders/Cities.py", line 1, in <module>
from .CityNames import *
ModuleNotFoundError: No module named '__main__.CityNames'; '__main__' is not a package
、見たとき他の人から質問された質問の多くは、__init__.py
をディレクトリに追加することを話しています。私はそれがなぜ、なぜ私がそれを追加するのかわからない。私がそれを加えると、違いはないようです。ファイルに何かを入れるか空白のままにする必要がありますか?
それは私のために働く。あなたはPyCharmの外でそれを実行しようとしましたか? – dashiell
あなたは[** _十億時間の相対輸入_ **](https://stackoverflow.com/questions/14132789/relative-imports-for-the-billionth-time)を読むべきでしょう。 – martineau
https://stackoverflow.com/questions/21236824/unresolved-reference-issue-in-pycharm多分これはそれにいくつかの光を当てるだろう – dashiell