Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';导入包文件(没有名为…)的模块(Python)_Python_Module_Packages - Fatal编程技术网

Can';导入包文件(没有名为…)的模块(Python)

Can';导入包文件(没有名为…)的模块(Python),python,module,packages,Python,Module,Packages,我在尝试运行代码(从CMD)时收到此错误: 这是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.pix

我在尝试运行代码(从CMD)时收到此错误:

这是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
…和返回错误的main(
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()
我不明白为什么它给我模块包上的错误<代码>数字
是一个包,为什么它不导入它呢(看起来)

更新:尝试从.hog导入hog中放入
,然后从CMD执行。它打印:

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:对于感兴趣的人来说,这是一个重要的项目 numbers是一个python标准包

检查您是否真的要导入该软件包,或者将您的软件包重命名为更具体的名称

此外:

看起来python可能无法识别您的包

打开python shell并编写:

import sys
print sys.path
检查您的号码路径是否存在

如果它不在那里,你必须添加它

sys.path.insert(0, "/path/to/your/package_or_module")

您的train.py文件已经在包“number”中,因此您不必导入数字

请尝试以下方法:

from hog import HOG
我在评论中看到它给了您“错误(红线)”。
你能说得更准确些吗,因为我看不出有错误。



从numbers.hog import hog
更改为
从hog import hog

从numbers import dataset
更改为
import dataset

您已经在“数字”包中,因此在导入时不必再次精确
当您从数字导入数据集键入
时,Python将查找包含
dataset.py
文件的包
numbers
(在实际包中)


如果您的
train.py
numbers
包之外,则必须在前面输入包名(
numbers
)。

是否尝试将此行“from numbers.hog import hog”替换为“from hog import hog”?这两个文件毕竟都在同一个目录中。它给我这样写的错误(红线)…给我返回“无法导入名称hog”。。但是它接受它作为原始“from numbers.hog import hog”mm python的修改。python不识别您的包,我更新了我的答案我更新了我的答案。检查是否未导入python标准编号包,并将包重命名/添加到python路径。打印各种python路径以及“DetectNumber\numbers”文件夹/包。我的意思是,我已经将这个项目路径添加到变量主路径(Python的…)中,这太奇怪了…我认为Python正在尝试导入官方数字包。请将您的包裹重新命名为其他物品。请原谅我,我不是英国人,我不理解“用红线强调”和哪个错误?---也有可能我说错了。。。好的,下划线..只需从hog import hog处输入内容,不要输入其他答案或评论中所说的任何内容(仅供参考)。即使代码用红线强调,您也能运行程序吗?如果是,请尝试这样做。给出错误-->ModuleNotFoundError:在CMD中没有名为'numdetect'的模块,在IDE中是
用法:train.py[-h]-d DATASET-m MODEL train.py:error:需要以下参数:-d/--DATASET,-m/--MODEL
我不知道您的IDE是什么,因此我无法在这方面帮助您。请删除代码中的“import numdetect”行。
from hog import HOG