GVKun编程网logo

Python 模块之间的冲突导入(python模块相互导入)

16

以上就是给各位分享Python模块之间的冲突导入,其中也会对python模块相互导入进行解释,同时本文还将给你拓展Android数据绑定和Guava之间的冲突导致ProGuard错误、pytesser

以上就是给各位分享Python 模块之间的冲突导入,其中也会对python模块相互导入进行解释,同时本文还将给你拓展Android数据绑定和Guava之间的冲突导致ProGuard错误、pytesseract 和 pynput 热键之间的冲突、Python time模块之时间戳与结构化时间的使用、python – nginx和uwsgi服务器中的uwsgi模块之间的区别等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Python 模块之间的冲突导入(python模块相互导入)

Python 模块之间的冲突导入(python模块相互导入)

如何解决Python 模块之间的冲突导入?

我有以下目录结构:

.
├── main.py
├── package
│   ├── module.py
│   └── utils.py
└── utils.py

package 中,我有(很多)代码,其中所有导入都与 package 相关,例如package/module.py 包含 import utils,它期望导入 package/utils.py(不是 utils.py)。

package 之外的所有代码都希望导入相对于根目录 .

这给我带来了一个问题,因为如果 main.py 包含 import package.module 而我有 PYTHONPATH=.,那么 package/module.py 最终会导入 utils.py 而不是所需的package/utils.py(因为它包含 import utils)。

如何在不重命名脚本的情况下解决此问题?我想以某种方式在 package 中安装代码,以便我可以在 main.py 中导入它,而不会与我的其他文件发生冲突。

我的尝试:我在 setup.py 中添加了一个最小的 package 文件并运行了 pip install -e .,但这并没有解决问题。

非常感谢您的帮助!

解决方法

您是否尝试过对子模块进行相对导入?

所以通常你会使用

import utils  # Import ./utils.py
import .utils # Import relative ./<eg. package>/utils.py

这会导致 ''package'' 下的脚本总是导入它们的本地 utils.py

Android数据绑定和Guava之间的冲突导致ProGuard错误

Android数据绑定和Guava之间的冲突导致ProGuard错误

在启用ProGuard的情况下编译我的 Android应用程序时出现以下错误.
Warning: library class android.databinding.tool.util.sourceCodeEscapers$1 
    extends or implements program class com.google.common.escape.CharEscaper
Warning: library class android.databinding.tool.util.sourceCodeEscapers$JavaCharEscaper 
    extends or implements program class com.google.common.escape.ArrayBasedCharEscaper
Warning: library class android.databinding.tool.util.sourceCodeEscapers$JavaCharEscaperWithOctal 
    extends or implements program class com.google.common.escape.ArrayBasedCharEscaper
Warning: there were 3 instances of library classes depending on program classes.
         You must avoid such dependencies,since the program classes will
         be processed,while the library classes will remain unchanged.
         (http://proguard.sourceforge.net/manual/troubleshooting.html#dependency)

这似乎是由Android data binding和Guava之间的冲突引起的.我的应用依赖于Guava(com.google.guava:guava:18.0)并启用了数据绑定. appears数据绑定对Guava有某种内部依赖性,这导致ProGuard出现问题.

我正在运行最新的测试版gradle(2.0.0-beta5),所以问题可能与此有关.

解决方法

所以我能够通过将此添加到proguard来构建:

-dontwarn android.databinding.**
-keep class android.databinding.** {*; }

我不认为完全是正确的解决方案,只是忽略这些类,但我认为我们可能只需等待谷歌的更新.在将它添加到proguard之后我能够构建一个版本apk但它崩溃了,我认为它仍然是proguard但在我的代码中发现了其他错误.

pytesseract 和 pynput 热键之间的冲突

pytesseract 和 pynput 热键之间的冲突

如何解决pytesseract 和 pynput 热键之间的冲突?

我正在开发一个项目,在该项目中,用户将使用热键使用 PyTesseract 启动图像的 OCR。热键是用 pynput 实现的。 PyTesseract 和 pynput 之间似乎存在冲突。在下面的代码中,我的热键是 F2 和 F3。

如果您按 F2,OCRImage 函数将毫无问题地启动。如果您再次点击它,该功能将不会触发。如果你第三次击中它,它会再次开火。它仅适用于所有其他按键。

我确定是 PyTesseract 导致了问题,因为注释掉该行(及其下方的输出行)会使问题消失。如果该行在,您可以反复点击 tkinter 按钮,并且每次都会很好地触发(这会从等式中删除 pynput)。我将 F2 热键分配给一个函数,该函数应该在调用 OCRImage 函数之前打印“First Button Hit”,但该打印甚至没有触发,再次指向 PyTesseract 和 pynput 之间的某些内容。也许涉及键盘侦听器?

from tkinter import *
from tkinter import ttk
from pynput import keyboard
import cv2
import numpy as np
import PyTesseract

TKWindow = Tk()

TKWindow.geometry("500x500")

class Hotkeys(object):
    HotkeyOne = "<113>"
    HotkeyTwo = "<114>"

PyTesseract.PyTesseract.tesseract_cmd = ''C:/Program Files/Tesseract-OCR/tesseract.exe''

def OCRImage():
    img = cv2.imread(''my_screenshot.png'')
    img = cv2.resize(img,None,fx=4,fy=4,interpolation=cv2.INTER_CUBIC)
    gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
    gray = cv2.adaptiveThreshold(gray,255,adaptiveMethod=cv2.ADAPTIVE_THRESH_GAUSSIAN_C,thresholdType=cv2.THRESH_BINARY_INV,blockSize=3,C=3)
    kernel = np.ones((2,1),np.uint8)
    out_below = PyTesseract.image_to_string(img)
    print("OUTPUT:",out_below)

def on_activate():
    print("First Button Hit")
    OCRImage()

def on_activate_two():
    print("Second Button Hit")

TKFrame = Frame(TKWindow)
TKFrame.pack()
ButtonOne = ttk.Button(TKFrame,text="OCR",command=OCRImage)
ButtonOne.grid(row=40,column=0)
QuitButton = ttk.Button(TKFrame,text="Quit",command=lambda: TKWindow.quit())
QuitButton.grid(row=50,column=0,sticky="NSEW")

listener = keyboard.GlobalHotKeys({
    Hotkeys.HotkeyOne: on_activate,Hotkeys.HotkeyTwo: on_activate_two})
listener.start()

TKWindow.mainloop()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Python time模块之时间戳与结构化时间的使用

Python time模块之时间戳与结构化时间的使用

导入相关库

import time

1. 时间戳

1.1 time.time()

time.time()可以得到的是 时间戳 。即 1970年1月1日0时0分0秒到现在时间的偏移量 s

t1 = time.time()
print(''t1:'', t1)

1.2 时间戳 转 字符串

将时间戳转化为 一种固定格式 的字符串,可以使用time.ctime()方法。(但是不太常用)

t = time.ctime(time.time())
print(t)

2. 结构化时间

使用结构化时间更便于我们的操作

2.1 本地时间

本地时间与时区有关。

t2 = time.localtime(time.time())  
print("t2:", t2)

2.2 格林威治时间(零时区)

格林威治时间(0时区) 比北京时间晚8小时整(全球基准,用这个时间可以消除在不同地方写作代码的影响)

t3 = time.gmtime(time.time())
print("t3:", t3)

2.3 结构化时间 转 字符串

字符串形式是人类一般可以接受的形式

t4 = time.strftime("%Y/%m/%d %H:%M:%S", t2)
print(t4)
print(type(t4))

2.4 字符串 转 结构化时间

上述操作的逆向操作

t5 = time.strptime(''2022/06/22 20:30:35'', "%Y/%m/%d %H:%M:%S")
print(t5)

2.5 结构化数据的属性

print("年:", t2.tm_year)
print("月:", t2.tm_mon)
print("日:", t2.tm_mday)
print("时", t2.tm_hour)
print("分", t2.tm_min)
print("秒", t2.tm_sec)
print("本周已过天数:", t2.tm_wday)
print("本年已过天数:", t2.tm_yday)
print("是否是夏令时", t2.tm_isdst)

2.6 结构化时间 转 时间戳

t7 = time.mktime(t2)
print(t7)

到此这篇关于Python time模块之时间戳与结构化时间的使用的文章就介绍到这了,更多相关Python time模块内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • python 包实现 time 时间管理操作
  • Python 时间操作time详情
  • python使用timeit时间模块
  • Python学习之time模块的基本使用
  • python如何快速生成时间戳

python – nginx和uwsgi服务器中的uwsgi模块之间的区别

python – nginx和uwsgi服务器中的uwsgi模块之间的区别

我是linux开发的新手.我对我阅读的文档感到有点困惑.
我的最终目标是托管一个简单的python支持的Web服务,该服务将检查传入的有效负载,并将其转发到其他服务器.这应该是python中少于30行的代码.

我打算用Nginx来提供python文件.根据我的研究,我还需要一个python web框架.我选择和uwsgi一起去.我很困惑.我需要哪一个?一个Nginx uwsgi模块,还是uwsgi服务器?我不想仅仅为了这个简单的目的而放置django.

nginx documentation提到了

Do not confuse the uwsgi protocol with the uWsgi server (that speaks the uwsgi protocol)

那么,这是否意味着,我不需要单独安装uwsgi服务器?我只是安装Nginx,并开始配置?我正在使用Nginx 1.4.4

有人可以分享一步一步的配置程序,如何使用Nginx配置uwsgi,以及示例python代码(也许你好世界)?我可以配置Nginx很好,但我不知道如何使它服务python页面.我能找到的所有文档都涉及将django放在首位.

最佳答案
你混淆了事情,所以让我澄清一下.

Python通过Web服务器发布应用程序的标准方法是WSGI – 您可以将其视为Python的本机CGI. uWSGI是一个符合Wsgi的服务器,它使用uwsgi协议与其他uWsgi实例或上游服务器通信.通常上游服务器是nginx,其中HttpUwsgiModule允许它使用uwsgi协议进行通信 – 使用Nginx,您可以为应用服务器提供额外的保护层,负载平衡和提供静态文件.在大多数情况下,You Should Be Using Nginx + UWSGI.为了回答您的问题,uWsgi安装并与Nginx分开运行,并且它们都需要配置为相互通信.

纯Wsgi是非常低级的,所以你可能想要使用符合Wsgi的framework.我猜前两个是DjangoFlask.

对于一个hello world Flask设置,Serving Flask With Nginx似乎是一篇很好的文章.

今天的关于Python 模块之间的冲突导入python模块相互导入的分享已经结束,谢谢您的关注,如果想了解更多关于Android数据绑定和Guava之间的冲突导致ProGuard错误、pytesseract 和 pynput 热键之间的冲突、Python time模块之时间戳与结构化时间的使用、python – nginx和uwsgi服务器中的uwsgi模块之间的区别的相关知识,请在本站进行查询。

本文标签: