我试图在开发我的 Python 应用程序时养成良好的习惯,并将它们组织起来,就好像它们将来会一直被其他人使用一样。其中一个关键部分是包装方面。
我已经阅读了一定数量的帖子、讨论和 pep 517/518。但是,我仍然不完全了解如何正确组织我的文件以进行打包。
我决定跟随setup.cfg路径而不是pyproject.toml路径。那件事很清楚。我将在setup.cfg.
我也在使用virtualenv并且我知道与开发相关的包 ( black, pytest,...) 应该在一个单独的文件中定义setup.cfg,通常一个名为requirements.txt. 有一点不清楚:应该setup.cfg是一个子集requirements.txt并因此重复一些信息?这似乎是不好的做法,并且在某些时候肯定会变得断开连接并且难以维护。
我试图找到这个问题的答案。我找到了这篇文章,但我不明白如何添加它
--index-url https://pypi.python.org/simple/
-e .
Run Code Online (Sandbox Code Playgroud)
在 requirements.txt 中有助于避免问题甚至处理开发依赖项。
当他提出以下可能性时,我更加迷茫了:
--index-url https://pypi.python.org/simple/
-e https://github.com/foo/bar.git#egg=bar
-e .
Run Code Online (Sandbox Code Playgroud)
这达到了什么目的?
最后,该setup.cfg方式是否与车轮包的构建兼容?
我正在使用 tqdm 和 requests 来管理 Python 中的文件下载。但是我不知道如何使 tqdm 以人类可读的格式(即以 MB/s 为单位)显示进度条。
这是我的代码
import requests
import os
from tqdm import tqdm
def download_file(url, local_path="./"):
local_filename = url.split('/')[-1]
path = local_path + local_filename
r = requests.get(url, stream=True)
total_size = int(r.headers.get('content-length', 0))
chunk_size = 32*1024
with open(local_filename, 'wb') as f:
# 1KB = 1024 bytes
for chunk in tqdm(r.iter_content(chunk_size), total=total_size, unit_scale=True,
unit_divisor=1024):
if chunk:
f.write(chunk)
return path
weightLink = "https://pjreddie.com/media/files/yolov3.weights"
weigthPath = r"/PyTorch-YOLOv3/weights/"
weightLink = "https://pjreddie.com/media/files/yolov3.weights"
download_file(weightLink, weigthPath)
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,下载大小的进度是错误的,我在 中看到下载速度it/s。我希望所有内容都以MB/s …
我正在使用 yoloV3 在我自己的训练集上进行训练。我已经正常编译,准备训练集,修改配置文件,.data,...
但是在训练时,yolo 输出关于学习率(即速率)保持在 0 即
27: 1987.573730, 1807.166748 avg loss, 0.000000 rate, 2.820172 seconds, 216 images Loaded: 0.000047 seconds
Run Code Online (Sandbox Code Playgroud)
我不明白为什么?在配置文件中,训练率等于 0.001
我编写了一段非常简单的代码片段来尝试tkinter:
import tkinter as tk
root=tk.Tk()
frame = tk.Frame(root).pack()
button = tk.Button(frame,
text="next",
command=root.quit).pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
上面的代码导致窗口冻结.有人可以向我解释这种行为背后的原因是什么?
我正在学习 Blazor 和 C#(两者都是新的),并且正在玩我的一个宠物项目。
对于该项目,我编写了一个Project.cs文件,位于按照本Data教程创建的结构的目录中。
在某些时候,我需要一个字典数据结构,我尝试在类中创建这样的数据结构:
namespace MyApp.Data;
public class Project
{
public Project()
{
}
Dictionary<string, string> openWith =
new Dictionary<string, string>();
// Add some elements to the dictionary. There are no
// duplicate keys, but some of the values are duplicates.
openWith.Add("txt", "notepad.exe");
openWith.Add("bmp", "paint.exe");
openWith.Add("dib", "paint.exe");
openWith.Add("rtf", "wordpad.exe");
}
Run Code Online (Sandbox Code Playgroud)
但是当我直接Invalid token '(' in class, record, struct, or interface member declaration从 Microsoft文档中获取这些行时,我收到了错误
我究竟做错了什么 ?
我正在学习 AWS 云开发套件 (CDK)。
作为学习的一部分,我试图了解我应该如何正确处理生产和开发环境。
我知道AWS CDK提供了环境参数来允许将堆栈部署到特定帐户。
但是,如何为开发堆栈和生产堆栈提供特定的选项呢?AWS CDK 似乎没有默认提供它,或者我是否遗漏/误解了某些内容?
一个非常简单的例子是,我想要一个my-s3-bucket-dev为我的开发帐户调用的 S3 存储桶,以及一个my-s3-bucket-prod为我的生产帐户命名的 S3 存储桶。但是如何stage在 AWS CDK 中正确处理变量?
我知道我可以在cdk.json文件中添加参数,但同样,我不知道如何正确使用此文件来依赖于已部署的堆栈,即生产与开发。
感谢您的支持