标签: python

如何修复"非包装中的尝试相对导入",即使使用__init__.py也是如此

我正在尝试遵循PEP 328,具有以下目录结构:

pkg/
  __init__.py
  components/
    core.py
    __init__.py
  tests/
    core_test.py
    __init__.py
Run Code Online (Sandbox Code Playgroud)

core_test.py我有以下import语句

from ..components.core import GameLoopEvents
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时,我收到以下错误:

tests$ python core_test.py 
Traceback (most recent call last):
  File "core_test.py", line 3, in <module>
    from ..components.core import GameLoopEvents
ValueError: Attempted relative import in non-package
Run Code Online (Sandbox Code Playgroud)

搜索周围我发现" 相对路径甚至不能使用__init__.py "和" 从相对路径导入模块 ",但它们没有帮助.

这里有什么我想念的吗?

python init package python-import importerror

713
推荐指数
9
解决办法
47万
查看次数

712
推荐指数
3
解决办法
225万
查看次数

使用@property与getter和setter

这是一个纯Python特定的设计问题:

class MyClass(object):
    ...
    def get_my_attr(self):
        ...

    def set_my_attr(self, value):
        ...
Run Code Online (Sandbox Code Playgroud)

class MyClass(object):
    ...        
    @property
    def my_attr(self):
        ...

    @my_attr.setter
    def my_attr(self, value):
        ...
Run Code Online (Sandbox Code Playgroud)

Python让我们可以这样做.如果你要设计一个Python程序,你会使用哪种方法?为什么?

python properties getter-setter

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

有没有办法杀死一个线程?

是否可以在不设置/检查任何标志/信号量/等的情况下终止正在运行的线程?

python multithreading kill terminate

710
推荐指数
16
解决办法
71万
查看次数

arr .__ len __()是获取Python数组长度的首选方法吗?

Python中,以下是获取元素数量的唯一方法吗?

arr.__len__()
Run Code Online (Sandbox Code Playgroud)

如果是这样,为什么奇怪的语法?

python arrays methods

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

在Python中将十六进制字符串转换为int

如何在Python中将十六进制字符串转换为int?

我可以把它作为" 0xffff"或只是" ffff".

python string hex

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

如何检查变量的类型是否为字符串?

有没有办法检查python中的变量类型是否为字符串..就像

isinstance(x,int);
Run Code Online (Sandbox Code Playgroud)

对于整数值?

python string variables types

705
推荐指数
15
解决办法
80万
查看次数

我如何强制划分为浮点?分部继续向下舍入到0?

我有两个整数值ab,但我需要他们的浮点比例.我知道a < b并且我想要计算a / b,所以如果我使用整数除法,我将总是得到0,余数为a.

我如何c在Python中强制成为Python中的浮点数?

c = a / b
Run Code Online (Sandbox Code Playgroud)

python floating-point integer division python-2.x

703
推荐指数
9
解决办法
63万
查看次数

如何导入其他Python文件?

如何在Python中导入其他文件?

  1. 我怎样才能导入特定的python文件import file.py
  2. 如何导入文件夹而不是特定文件?
  3. 我想根据用户输入在运行时动态加载Python文件.
  4. 我想知道如何从文件中加载一个特定的部分.

例如,main.py我有:

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

虽然这给了我所有的定义extra.py,但也许我想要的只是一个定义:

def gap():
    print
    print
Run Code Online (Sandbox Code Playgroud)

我怎么添加到import语句只得到gapextra.py

python python-import

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

从python中的列表中获取唯一值

我想从以下列表中获取唯一值:

['nowplaying', 'PBS', 'PBS', 'nowplaying', 'job', 'debate', 'thenandnow']
Run Code Online (Sandbox Code Playgroud)

我需要的输出是:

['nowplaying', 'PBS', 'job', 'debate', 'thenandnow']
Run Code Online (Sandbox Code Playgroud)

此代码有效:

output = []
for x in trends:
    if x not in output:
        output.append(x)
print(output)
Run Code Online (Sandbox Code Playgroud)

我应该使用更好的解决方案吗?

python

701
推荐指数
17
解决办法
138万
查看次数