标签: python-import

如何在Python中使用OpenCV?

我刚刚在Windows 7机器上安装了OpenCV.结果,我得到一个新目录:

C:\OpenCV2.2\Python2.7\Lib\site-packages

在这个目录中,我有两个文件:cv.libcv.pyd.

然后我尝试使用opencvPython.我做以下事情:

import sys
sys.path.append('C:\OpenCV2.2\Python2.7\Lib\site-packages')
import cv
Run Code Online (Sandbox Code Playgroud)

因此,我收到以下错误消息:

File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

添加

正如在这里推荐的那样,我已将内容复制C:\OpenCV2.0\Python2.6\Lib\site-packages到了C:\Python26\Lib\site-packages.它没有帮助.

增加2

我的环境变量具有以下值:

Path=C:\Program Files\MiKTex\miktex\bin;C:\OpenCV2.2\bin;C:\Python26;
PYTHONPATH=C:\OpenCV2.2\Python2.7\Lib\site-packages
Run Code Online (Sandbox Code Playgroud)

我需要改变什么吗?我需要添加一些东西吗?

增加3

我认为我的问题很普遍:如何使用图书馆?可能我需要在某处找到*.ddl文件?那么我需要使用包含此文件的目录的名称作为某些环境变量的值吗?或者我可能需要使用sys.addpath?我还需要知道调用库的方式与包含库的文件的名称有什么关系.

增加4

有趣的是,当我输入时import cv,我得到:

ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)

但是当我输入时,import opencv我得到:

ImportError: No module named opencv
Run Code Online (Sandbox Code Playgroud)

增加5

有人建议我使用不一致的python版本.更详细的说,OpenCV尝试使用Python2.7,我有Python2.6.所以,我已经安装了Python …

python opencv python-import importerror

30
推荐指数
2
解决办法
7万
查看次数

Flask - ImportError:没有名为app的模块

首先我创造了 __init__.py

from flask import Flask

app = Flask(__name__)
Run Code Online (Sandbox Code Playgroud)

然后在一个单独的文件中,在同一目录中 run.py

from app import app 

app.run(
    debug = True
)
Run Code Online (Sandbox Code Playgroud)

当我尝试运行时run.py,我收到错误

Traceback (most recent call last):
  File "run.py", line 1, in <module>
    from app import app 
ImportError: No module named app
Run Code Online (Sandbox Code Playgroud)

python python-import

30
推荐指数
6
解决办法
6万
查看次数

'尝试在非包中进行相对导入'尽管在一个目录中包含__init__.py

我有一个名为的模块extended.py,其中包含以下行:

from .basic import BasicModule
Run Code Online (Sandbox Code Playgroud)

并且该文件与此目录basic.py位于同一目录中__init__.py.但是,当我尝试运行它时:

python extended.py
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ValueError: Attempted relative import in non-package
Run Code Online (Sandbox Code Playgroud)

还添加了这一行:

from __future__ import absolute_import
Run Code Online (Sandbox Code Playgroud)

没有解决问题.也许我太累了,看不到明显的 - 但我没有看到这里的问题.

python python-import python-2.7

29
推荐指数
1
解决办法
5万
查看次数

Python:为什么要禁止'from <module> import*'?

如果你碰巧有

from <module> import *
Run Code Online (Sandbox Code Playgroud)

在程序(或模块)的中间,您将收到警告:

/tmp/foo:100: SyntaxWarning: import * only allowed at module level
Run Code Online (Sandbox Code Playgroud)

我理解为什么import *一般不鼓励(命名空间不可见),但在很多情况下它会证明是方便的,特别是在代码不与任何人共享的情况下.

那么,任何人都可以准确地详细解释为什么from <module> import *在所有可能的情况下都应该禁止?

python namespaces module python-import

28
推荐指数
3
解决办法
2万
查看次数

ImportError:没有名为google.cloud的模块

我无法导入google.cloud.speech

from google.cloud import speech
Run Code Online (Sandbox Code Playgroud)

我用它安装了它:

pip install --upgrade google-cloud-speech -t dir-name
Run Code Online (Sandbox Code Playgroud)

从dir-name导入时,它给出了以下错误

ImportError: No module named google.cloud
Run Code Online (Sandbox Code Playgroud)

包含所有子包的google包在那里,但在每个子包中也没有__init__ .py.

如何在不在包文件夹中添加__init__ .py的情况下导入此包?

PS:我也尝试过__future__ import absolute_import,但它无法正常工作.

python-import python-2.7 google-speech-api google-cloud-speech

28
推荐指数
4
解决办法
4万
查看次数

导入路径 - 正确的方法?

我知道有很多相似或相同的问题,但我仍然无法理解/找到适合我使用模块的正确方法.Python是我最喜欢的语言,我喜欢其中的一切,除了使用导入:递归导入(当你尝试引用一个尚未存在的名称时),导入路径等.

所以,我有这种项目结构:

my_project/
    package1/
        __init__.py
        module1
        module2
    package2/
        __init__.py
        module1
        module2
Run Code Online (Sandbox Code Playgroud)

Package1可以使用独立单元,但也可以通过它导入package2.我现在在做什么,例如,在package1.module1我写from package1 import module2,即使用导入模块的完整路径.我这样做是因为如果我使用import module2- 当从另一个包(package2)导入模块时,这将不起作用.我也无法使用from . import module2- module1直接运行时这不起作用.

好的,所以为了from package1 import module2package1.module1两种情况下工作(当直接运行package1.module1和从中导入时package2)我在以下的开头添加这些行package1.module1:

import os, sys
currDir = os.path.dirname(os.path.realpath(__file__))
rootDir = os.path.abspath(os.path.join(currDir, '..'))
if rootDir not in sys.path: # add parent dir to paths
    sys.path.append(rootDir)
Run Code Online (Sandbox Code Playgroud)

对我来说,这是有效的,但我觉得这不是pythonic.难道我做错了什么?

相反,我应该始终package1.module1从项目根运行吗?如果是这样,这使得从IDE运行它变得不方便 - 我需要以某种方式在其中设置路径.

更新:我试图添加一个文件root.pth到 …

python path python-import

27
推荐指数
2
解决办法
2万
查看次数

如何从同一目录导入python类文件?

我的Python 3.3项目中有一个名为/ models的目录.

从我,main.py我只是做一个

from models import *
Run Code Online (Sandbox Code Playgroud)

在我的__init__.py:

__all__ = ["Engine","EngineModule","Finding","Mapping","Rule","RuleSet"]
from models.engine import Engine,EngineModule
from models.finding import Finding
from models.mapping import Mapping
from models.rule import Rule
from models.ruleset import RuleSet
Run Code Online (Sandbox Code Playgroud)

这适用于我的应用程序.

我有一个模型依赖于其他模型,使得我engine.py我需要进口finding.pyengine.py.当我做:from finding import Finding

我收到了错误No Such Module exists.

如何从同一模块/目录中的文件A导入B类?

编辑1: 显然我可以做到:from .finding import Finding这是有效的.下面的答案也反映了这一点,所以我认为这是合理的正确.我已经修复了我的文件命名并将测试移到了另一个目录,现在我运行得很顺利.谢谢!

python python-import python-3.x

27
推荐指数
1
解决办法
3万
查看次数

Python 2.7中"绝对导入"的正确方法

  • Python 2.7.10
  • 在virtualenv
  • from __future__ import absolute_import在每个模块中启用

目录树看起来像:

Project/
    prjt/
        __init__.py
        pkg1/
            __init__.py
            module1.py
            tests/
                __init__.py
                test_module1.py
        pkg2/
            __init__.py
            module2.py
            tests/
                __init__.py
                test_module2.py
        pkg3/
            __init__.py
            module3.py
            tests/
                __init__.py
                test_module3.py
    data/
    log/
Run Code Online (Sandbox Code Playgroud)

我试图用功能compute()pkg2/module2.pypkg1/module1.py写,如:

# In module1.py
import sys
sys.path.append('/path/to/Project/prjt')

from prjt.pkg2.module2 import compute
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时python module1.py,解释器引发了一个ImportError No module named prjt.pkg2.module2.

  1. 什么是"绝对导入"的正确方法?我一定要添加路径到Projectsys.path
  2. 我怎么能test_module1.py在交互式翻译中运行?通过python prjt/pkg1/tests/test_module1.pypython -m prjt/pkg1/tests/test_module1.py

python python-import python-2.7

27
推荐指数
3
解决办法
6889
查看次数

Cython:cimport和import numpy as(both)np

在Cython文档的教程中,有numpy模块的cimport和import语句:

import numpy as np
cimport numpy as np
Run Code Online (Sandbox Code Playgroud)

我发现这个约定在numpy/cython用户中很受欢迎.

这看起来很奇怪的我,因为他们命名为NP.在哪部分代码中,使用了导入/ cimported np?为什么cython编译器不会混淆它们?

python numpy cython python-import

26
推荐指数
1
解决办法
6591
查看次数

带有__init __.pyx的Cython包:可能吗?

是否可以使用__init__.pyx(编译__init__.so)创建Python 2.7包?如果是这样的话?我没有运气好运.

这是我尝试过的:

  • setup.py:

    #!/usr/bin/env python
    
    from distutils.core import setup
    from distutils.extension import Extension
    from Cython.Distutils import build_ext
    
    foo = Extension(name='foo.__init__', sources=['foo/__init__.pyx'])
    bar = Extension(name='foo.bar', sources=['foo/bar.pyx'])
    
    setup(name='foo',
          packages = ['foo'],
          cmdclass={'build_ext':build_ext},
          ext_modules = [foo, bar])
    
    Run Code Online (Sandbox Code Playgroud)
  • foo/__init__.pyx:

    import foo.bar
    
    cpdef hello_world():
        print "hello world"
        foo.bar.blah()
    
    Run Code Online (Sandbox Code Playgroud)
  • foo/bar.pyx:

    cpdef blah():
        print "blah"
    
    Run Code Online (Sandbox Code Playgroud)

以上具有以下行为:

$ python -c 'import foo; foo.hello_world()'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named foo
Run Code Online (Sandbox Code Playgroud)

我看到 …

python cython python-import python-c-extension python-2.7

26
推荐指数
1
解决办法
3444
查看次数