我receving這個錯誤當我嘗試運行(從CMD)的代碼:無法導入包文件(沒有名爲模塊...)(Python)的
ModuleNotFoundError: No module named 'numbers.hog'; numbers is not a package
下面是hog.py
文件代碼...
from skimage import feature
class HOG:
def __init__(self, orientations = 9, pixelsPerCell = (8, 8),
cellsPerBlock = (3, 3), normalize = False):
self.orienations = orientations
self.pixelsPerCell = pixelsPerCell
self.cellsPerBlock = cellsPerBlock
self.normalize = normalize
def describe(self, image):
hist = feature.hog(image,
orientations = self.orienations,
pixels_per_cell = self.pixelsPerCell,
cells_per_block = self.cellsPerBlock,
normalize = self.normalize)
return hist
...和主(train.py
),它返回錯誤。
from sklearn.svm import LinearSVC
from numbers.hog import HOG
from numbers import dataset
import argparse
import pickle as cPickle
ap = argparse.ArgumentParser()
ap.add_argument("-d", "--dataset", required = True,
help = "path to the dataset file")
ap.add_argument("-m", "--model", required = True,
help = "path to where the model will be stored")
args = vars(ap.parse_args())
(digits, target) = dataset.load_digits(args["dataset"])
data = []
hog = HOG(orientations = 18, pixelsPerCell = (10, 10),
cellsPerBlock = (1, 1), normalize = True)
for image in digits:
image = dataset.deskew(image, 20)
image = dataset.center_extent(image, (20, 20))
hist = hog.describe(image)
data.append(hist)
model = LinearSVC(random_state = 42)
model.fit(data, target)
f = open(args["model"], "w")
f.write(cPickle.dumps(model))
f.close()
我不明白爲什麼它給了我錯誤的模塊包。 numbers
是一個包,它爲什麼不導入它(好像它)?
UPDATE:試圖把from .hog import HOG
,然後從CMD..It打印執行:
No module named '__main__.hog'; '__main__' is not a package
難道瘋了嗎? hog.py
與其他文件一起位於主包中。正如你所看到的,它也包含HOG類....不明白..有人可以重現錯誤?
在它打印IDE控制檯:
usage: train.py [-h] -d DATASET -m MODEL
train.py: error: the following arguments are required: -d/--dataset, -m/--model
這應該因爲它是在IDE中執行,因爲程序必須在CMD運行,一旦是正確的。
更新2:誰是有興趣,這是項目https://github.com/VAUTPL/Number_Detection
您是否嘗試將「從numbers.hog import HOG」替換爲「from hog import HOG」?畢竟這兩個文件都在同一個目錄中。 –
它給我錯誤(紅線)這樣寫... – Link