相关疑难解决方法(0)

有人可以在Python中解释__all__吗?

我越来越多地使用Python,并且我一直__all__在不同的__init__.py文件中看到变量集.有人可以解释这是做什么的吗?

python syntax namespaces

873
推荐指数
10
解决办法
26万
查看次数

从相对路径导入模块

如何根据相对路径导入Python模块?

例如,如果dirFoo包含Foo.pydirBar,和dirBar包含Bar.py,我怎么导入Bar.pyFoo.py

这是一个直观的表示:

dirFoo\
    Foo.py
    dirBar\
        Bar.py
Run Code Online (Sandbox Code Playgroud)

Foo希望包括Bar,但重组文件夹层次结构不是一种选择.

python relative-path python-import

749
推荐指数
16
解决办法
88万
查看次数

ImportError:没有名为'Tkinter'的模块

出于某种原因,我无法使用Tkintertkinter模块.在python shell中运行以下命令后

import Tkinter
Run Code Online (Sandbox Code Playgroud)

要么

import tkinter
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误

import Tkinter
Run Code Online (Sandbox Code Playgroud)

要么

import tkinter
Run Code Online (Sandbox Code Playgroud)

可能是什么原因以及我们如何解决它?

python tkinter

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

Python AttributeError:'module'对象没有属性'Serial'

我正在尝试使用运行Debian的Raspberry Pi上的Python 2.6访问串口.我的脚本命名serial.py尝试导入pySerial:

import serial
ser = serial.Serial('/dev/ttyAMA0', 9600)
ser.write("hello world!")
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它拒绝与此错误建立串行连接:

AttributeError: 'module' object has no attribute 'Serial'
Run Code Online (Sandbox Code Playgroud)

当我尝试在交互式Python解释器中键入相同的代码时,它仍然无法正常工作.

奇怪的是,它曾经在几个小时前工作.

可能是什么问题呢?我试图修复一段时间,再次安装pySerial,重写我的代码,仔细检查串口等.

提前致谢!

python serial-port raspberry-pi

112
推荐指数
5
解决办法
33万
查看次数

为什么全局变量是邪恶的?

我试图找到一个很好的来源,解释为什么global在python(以及一般的编程)中使用被认为是不好的做法.有人可以指点我或解释一下吗?

python side-effects global-variables

100
推荐指数
3
解决办法
5万
查看次数

Django本地设置

我正在尝试在Django 1.2中使用local_setting ,但它对我不起作用.目前我只是将local_settings.py添加到我的项目中.

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'banco1',                      # Or path to database file if using sqlite3.
        'USER': 'root',                      # Not used with sqlite3.
        'PASSWORD': '123',                  # Not used with sqlite3.
        'HOST': 'localhost',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}
Run Code Online (Sandbox Code Playgroud)

local_settings.py

DATABASES = { …
Run Code Online (Sandbox Code Playgroud)

python django settings

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

是否应该避免使用通配符?

我正在使用PyQt并遇到了这个问题.如果我的import语句是:

from PyQt4.QtCore import *
from PyQt4.QtGui import *
Run Code Online (Sandbox Code Playgroud)

然后pylint给出了数百个"未使用的导入"警告.我很犹豫要把它们关闭,因为可能有其他未使用的导入实际上很有用.另一种选择是这样做:

from PyQt4.QtCore import Qt, QPointF, QRectF
from PyQt4.QtGui import QGraphicsItem, QGraphicsScene, ...
Run Code Online (Sandbox Code Playgroud)

and I end up having 9 classes on the QtGui line. There's a third option, which is:

from PyQt4 import QtCore, QtGui
Run Code Online (Sandbox Code Playgroud)

and then prefix all the classes with QtCore or QtGui whenever I use them.

At this point I'm agnostic as to which one I end up doing in my project, although the last one seems the …

python pyqt pylint pyqt4 python-import

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

"import*"究竟是什么导入的?

在Python中,究竟是什么import *导入的?它是否__init__.py在包含文件夹中导入?

例如,是否有必要申报from project.model import __init__from project.model import *足够?

python namespaces python-import

44
推荐指数
3
解决办法
5万
查看次数

了解numpy的dstack功能

我很难理解numpy的dstack功能实际上在做什么.文档相当稀疏,只是说:

按顺序深度(沿第三轴)堆叠阵列.

采用一系列数组并沿第三轴堆叠它们以形成单个数组.重建数组除以dsplit.这是将2D阵列(图像)堆叠到单个3D阵列中进行处理的简单方法.

所以要么我真的很愚蠢,这个含义是显而易见的,或者我似乎对"堆叠","按顺序","深度明智"或"沿轴"这两个术语有一些误解.但是,我的印象是我在上下文中理解这些术语,vstack并且hstack很好.

我们来看这个例子:

In [193]: a
Out[193]: 
array([[0, 3],
       [1, 4],
       [2, 5]])
In [194]: b
Out[194]: 
array([[ 6,  9],
       [ 7, 10],
       [ 8, 11]])
In [195]: dstack([a,b])
Out[195]: 
array([[[ 0,  6],
        [ 3,  9]],

       [[ 1,  7],
        [ 4, 10]],

       [[ 2,  8],
        [ 5, 11]]])
Run Code Online (Sandbox Code Playgroud)

首先,ab没有第三轴,所以我将如何堆叠起来一起" 第三轴"以开始?第二,假设a并且b是2D图像的表示,为什么我在结果中最终得到三个 2D数组而不是两个"顺序"的2D数组?

python numpy concatenation multidimensional-array

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

从包中导入所有函数:"from.*import*"

目标

我希望能够__init__.py从我的包中的每个文件导入(在)所有函数.

用法

例如在此文件夹结构中.

manage.py
- scripts/
   -- __init__.py
   -- tests.py
   -- deploy.py
Run Code Online (Sandbox Code Playgroud)

我目前正在做以下事情:

manage.py:

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

script/init .py:

from .tests import *
from .deploy import *
Run Code Online (Sandbox Code Playgroud)

但是,每次我在包中添加另一个文件时,我都要添加一个导入行script/__init__.py,这有点烦人.

python python-import

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