天道酬勤,学无止境

python-3.x

您如何找到小部件的唯一且恒定的 ID?(How do you find a unique and constant ID of a widget?)

问题 请注意,通过小部件,这不包括画布项目(不是小部件)。 我的目标是构建两个类:一个生成画布小部件的项目,另一个生成小部件本身。 这是为了确保我可以在窗口中移动东西并在重新打开时将其保留在那里。 我已经为画布项目做到了这一点。 你看,画布小部件实际上返回一个实际的 ID,它对于受尊重的项目保持不变,因此我可以引用它,它是坐标。 但是,对于小部件本身,似乎没有这种获取 ID 的方法。 我试过widget.getint() 、 widget.getvar()等。我也试过repr(widget)和id(widget) ,但是这两个值在重新打开时都会发生变化,我认为会创建新的小部件,与刚刚销毁的小部件相比,该变量仅指新创建的小部件,即使它具有相同的属性。 我还尝试将所述小部件放在父窗口中,如窗口或框架,但这些小部件本身不会为其各自的子小部件分配任何唯一值。 所以基本上,我可以获得任何给定小部件的唯一值,但没有一个是恒定的。 顺便说一下,这可以是任何值,因为我只是将它转换为字符串,将其附加到字典,并将坐标分配给所述 str 以引用特定的小部件。 预先感谢您的任何指导,非常感谢:) 回答1 您无法获得唯一的、固定的 ID,但您可以为小部件提供唯一的、固定的 ID。 在幕后,tkinter 使用 tk。 在 tk 中,每个小部件都有一个名称,并存在于通过点符号表示的层次结构中。 在 tk 中

2021-09-20 15:32:20    分类:技术分享    python   user-interface   python-3.x   tkinter   widget

使用 python3 安装 f2py(Install f2py with python3)

问题 我需要从 Python 中的 Fortran 模块调用例程。 我用f2py和python2.7做到了。 它工作得很好。 现在,我不得不使用它与python3但f2py似乎并没有与之兼容python3 。 我看到有些人使用名为f2py3的版本,但它既不能通过pip ,也不能通过 macports 获得(我使用的是 Mac)。 此外,python3+numpy+f2py 似乎已经集成到 Fedora 中。 有没有人设法在 Mac 上使用f2py3 (或等效的)和python3 ? 如果没有,您建议将 Fortran 库与python3链接的替代解决方案是什么? 回答1 作为替代方案,您可以使用 ctypes 和 fortran-iso-c-binding 来调用 Fortran 例程,而无需依赖 f2py。 这种方法的缺点是您需要自己指定接口。 这是我前段时间在 SO 上发布的示例。 回答2 f2py 带有 numpy,根据 2020 年 1 月在 github 上的活动,很明显 f2py 目前正在维护。

2021-09-20 15:29:39    分类:技术分享    python   python-3.x   fortran   osx-mavericks   f2py

Python 3将字典更新方法映射到其他字典列表[重复](Python 3 map dictionary update method to a list of other dictionaries [duplicate])

问题 这个问题在这里已经有了答案: 在 Python 3.x 中获取 map() 以返回列表(10 个回答) 6年前关闭。 在 Python 2 中,我可以执行以下操作: >> d = {'a':1} >> extras = [{'b':2}, {'c':4}] >> map(d.update, extras) >> d['c'] >> 4 在 Python 3 中得到一个KeyError : >> d = {'a':1} >> extras = [{'b':2}, {'c':4}] >> map(d.update, extras) >> d['c'] >> KeyError: 'c' 我想在 Python 3 中实现与在 Python 2 中相同的行为。 我知道 Python 3 中的 map 将返回一个迭代器(惰性求值等等),必须对其进行迭代才能更新字典。 我曾假设d['c']键查找会以某种方式触发地图迭代,但事实并非如此。 是否有一种 pythonic 方法可以在不编写 for 循环的情况下实现这种行为,我发现与 map. 我想过使用列表推导式: >> d = {'a':1} >> extras = [{'b':2}, {'c':4}] >> [x for x in map(d.update, extras)] >> d['c'] >> 4 但它似乎不是pythonic。

2021-09-20 15:29:30    分类:技术分享    python   python-3.x   python-2.7   dictionary   map-function

从 。 导入模型有效,但导入模型无效(from . import models works, but import models doesn't)

问题 我正在开发一个 web 项目并使用 Django。 在我的views.py文件中,我想访问我想为其导入models的数据库。 这是我的目录结构: ├── project │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── app │ ├── admin.py │ ├── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py ├── manage.py 在我的views.py我正在执行import models ,但我收到了importError 。 虽然from . import models from . import models有效。 为什么? 但以下工作没有任何错误: ├── __init__.py ├── mod1.py └── mod2.py 模块1.py import mod2 print(mod2.foo()) mod2.py def foo(): return "Hello" 回答1 import models的问题是你不知道它是绝对导入还是相对导入。 模型可以是python路径中的一个模块,也可以是当前模块中的一个包。 当本地包与 python 标准库包同名时,这很烦人。 您可以使用from __future__

2021-09-20 15:01:44    分类:技术分享    python   django   python-3.x   import

urllib 异常 http.client.BadStatusLine(urllib exception http.client.BadStatusLine)

问题 我一生都无法弄清楚为什么我不能捕捉到这个异常。 在这里查看本指南。 def get_team_names(get_team_id_url, team_id): print(get_team_id_url + team_id) try: response = urllib.request.urlopen(get_team_id_url + team_id) except urllib.error.HTTPError as e: print(e.code) print(e.read()) except urllib.error.URLError as e: print(e.code) print(e.read()) 例外: Traceback (most recent call last): File "queue_cleaner_main.py", line 60, in <module> sys.exit(main()) File "queue_cleaner_main.py", line 57, in main team_names_to_contact = queue_cleaner_functions.get_team_names(SERVICE_NOW_TEAM_NAME_URL, team[2]) File "D:\oppssup\old_job\queue

2021-09-20 15:01:12    分类:技术分享    exception   python-3.x   urllib

PyQt 启用/禁用 QComboBox 中的元素(PyQt Enable/Disable elements in a QComboBox)

问题 我有一个 QComboBox,它列出了所有 Windows 的驱动器号,并让用户从中进行选择。 在执行过程中,我们需要启用或禁用某些字母(不删除它们)。 这是基本代码: all_letters = ["{}:".format(chr(i)) for i in range(90, 64, -1)] # Z: -> A: all_letters.insert(0, "") cb_letter = QtGui.QComboBox() for l in all_letters: cb_letter.addItem(l) cb_letter.setCurrentIndex(0) 我可以找到一种解决方案(这听起来很复杂),只在此处禁用条目,但无法重新启用它。 启用和禁用 QComboBox 任何条目的最佳方法是什么? 回答1 默认情况下, QComboBox使用 QStandardItemModel,因此您可以使用 QStandardItem 的所有便捷方法: cb_letter.model().item(2).setEnabled(False) 回答2 注意:上面ekhumoro的回答可能就是你所需要的! 别再看了,除非您有理由想要使用 QAbstractItemModel 而不是 QStandardItemModel。 注 2:这绝不是一个通用的列表模型。

2021-09-20 14:40:08    分类:技术分享    python   python-3.x   pyqt   pyqt4   qcombobox

导入错误:没有名为“util”的模块(ImportError: No module named 'util')

问题 我知道这个问题有很多变体,但我找不到像我这样的。 当我尝试导入模块illustris_python我收到错误ImportError: No module named 'util' The module util is in the directory of the module snapshot.py下面需要它,所以我很困惑为什么 python 看到一个模块,但没有另一个。 我在下面包含了导入调用和回溯。 Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)] Type "copyright", "credits" or "license" for more information. IPython 3.0.0 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. %guiref

2021-09-20 14:12:30    分类:技术分享    python   python-3.x   import   python-import

对包含 UndefinedFunction 的导数的 sympy 表达式进行lambdify(lambdify a sympy expression that contains a Derivative of UndefinedFunction)

问题 我有几个未定义函数的表达式,其中一些包含该函数的相应(未定义)导数。 函数及其导数都仅作为数值数据存在。 我想从我的表达式中创建函数,然后使用相应的数值数据调用该函数以数值计算表达式。 不幸的是,我遇到了lambdify 的问题。 考虑以下简化示例: import sympy import numpy # define a parameter and an unknown function on said parameter t = sympy.Symbol('t') s = sympy.Function('s')(t) # a "normal" expression a = t*s**2 print(a) #OUT: t*s(t)**2 # an expression which contains a derivative b = a.diff(t) print(b) #OUT: 2*t*s(t)*Derivative(s(t), t) + s(t)**2 # generate an arbitrary numerical input # for demo purposes lets assume that s(t):=sin(t) t0 = 0 s0 = numpy.sin(t0) sd0 = numpy.cos(t0) # labdify a fa = sympy

2021-09-20 12:31:04    分类:技术分享    python   python-3.x   sympy

对包含 UndefinedFunction 的导数的 sympy 表达式进行lambdify(lambdify a sympy expression that contains a Derivative of UndefinedFunction)

问题 我有几个未定义函数的表达式,其中一些包含该函数的相应(未定义)导数。 函数及其导数都仅作为数值数据存在。 我想从我的表达式中创建函数,然后使用相应的数值数据调用该函数以数值计算表达式。 不幸的是,我遇到了lambdify 的问题。 考虑以下简化示例: import sympy import numpy # define a parameter and an unknown function on said parameter t = sympy.Symbol('t') s = sympy.Function('s')(t) # a "normal" expression a = t*s**2 print(a) #OUT: t*s(t)**2 # an expression which contains a derivative b = a.diff(t) print(b) #OUT: 2*t*s(t)*Derivative(s(t), t) + s(t)**2 # generate an arbitrary numerical input # for demo purposes lets assume that s(t):=sin(t) t0 = 0 s0 = numpy.sin(t0) sd0 = numpy.cos(t0) # labdify a fa = sympy

2021-09-20 12:29:06    分类:技术分享    python   python-3.x   sympy

带有烧瓶、sqlalchemy 和 sqlite 的 Openshift 应用程序 - 数据库恢复问题(Openshift app with flask, sqlalchemy and sqlite - problems with database reverting)

问题 我有一个非常像这样的问题:如何在部署到 OpenShift 后保留 SQLite 数据库不被还原? 我不完全理解他的回答,显然还不足以将其应用于我自己的应用程序,并且由于我无法评论他的回答(没有足够的代表),我想我必须提出自己的问题。 问题是,当推送我的本地文件(不包括数据库文件)时,我在 openshift 上的数据库变成了我在本地拥有的数据库(通过服务器所做的所有更改都将恢复)。 我已经在谷歌上搜索了很多并且几乎理解问题是数据库应该位于其他地方,但我无法完全掌握将它放置在哪里以及如果它在 repo 之外如何部署它。 编辑:快速解决方案:如果您遇到此问题,请尝试使用rhc ssh appname连接到您的 openshift 应用程序,然后cp app-root/repo/database.db app-root/data/database.db如果您的 openshift 数据目录为对 SQLALCHEMY_DATABASE_URI 的引用。 不过,我推荐下面接受的答案! 我附上了我的文件结构,这里有一些相关的代码: 配置文件 import os basedir = os.path.abspath(os.path.dirname(__file__)) SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir

2021-09-20 12:10:37    分类:技术分享    python-3.x   sqlite   flask   openshift   flask-sqlalchemy