相关疑难解决方法(0)

兄弟姐妹包进口

我已经尝试阅读有关兄弟进口甚至 包文档的问题,但我还没有找到答案.

具有以下结构:

??? LICENSE.md
??? README.md
??? api
?   ??? __init__.py
?   ??? api.py
?   ??? api_key.py
??? examples
?   ??? __init__.py
?   ??? example_one.py
?   ??? example_two.py
??? tests
?   ??? __init__.py
?   ??? test_one.py
Run Code Online (Sandbox Code Playgroud)

如何在脚本 examplestests目录从导入 api模块,并可以从命令行运行?

此外,我想避免sys.path.insert每个文件的丑陋黑客.当然这可以在Python中完成,对吧?

python packages siblings python-import

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

Python鼻子导入错误

我似乎无法使用鼻子测试框架来识别文件结构中测试脚本下面的模块.我已经设置了一个最简单的例子来演示这个问题.我将在下面解释.

这是包文件结构:

./__init__.py
./foo.py
./tests
   ./__init__.py
   ./test_foo.py
Run Code Online (Sandbox Code Playgroud)

foo.py包含:

def dumb_true():
    return True
Run Code Online (Sandbox Code Playgroud)

tests/test_foo.py包含:

import foo

def test_foo():
    assert foo.dumb_true()
Run Code Online (Sandbox Code Playgroud)

两个init .py文件都是空的

如果我nosetests -vv在主目录(foo.py所在)中运行,我得到:

Failure: ImportError (No module named foo) ... ERROR

======================================================================
ERROR: Failure: ImportError (No module named foo)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python/site-packages/nose-0.11.1-py2.6.egg/nose/loader.py", line 379, in loadTestsFromName
    addr.filename, addr.module)
  File "/usr/lib/python/site-packages/nose-0.11.1-py2.6.egg/nose/importer.py", line 39, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File "/usr/lib/python/site-packages/nose-0.11.1-py2.6.egg/nose/importer.py", line 86, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File …
Run Code Online (Sandbox Code Playgroud)

python nose python-import

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

如何从另一个目录导入python包?

我有一个结构如下的项目:

project
??? api
?   ??? __init__.py
?   ??? api.py
??? instance
?   ??? __init__.py
?   ??? config.py
??? package
?   ??? __init__.py
?   ??? app.py
??? requirements.txt
??? tests
    ??? __init__.py
Run Code Online (Sandbox Code Playgroud)

我正在尝试config.pypackage/app.py如下所示调用文件:

# package/app.py
from instance import config

# I've also tried
import instance.config
import ..instance.config
from ..instance import config
Run Code Online (Sandbox Code Playgroud)

但我总是收到以下错误:

Traceback (most recent call last):
  File "/home/csymvoul/projects/project/package/app.py", line 1, in <module>
    from instance import config
ModuleNotFoundError: No module named 'instance'
Run Code Online (Sandbox Code Playgroud)

修改sys.path不是我想做的事情。我知道这个问题得到了很好的回答,但给出的答案对我不起作用。

编辑: …

python python-module python-3.x

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