我是 Python 注释的新手(类型提示)。我注意到文件中的许多类定义pyi都继承了Generic[_T], 和_T = TypeVar('_T').
我很困惑,_T这里是什么意思?
from typing import Generic, TypeVar
_T = TypeVar('_T')
class Base(Generic[_T]): pass
Run Code Online (Sandbox Code Playgroud) 我最近安装了 Python 3.8.0 和 Python 3.7.4。
我有一些虚拟环境(使用python -m venv <directory>基于 v3.7.4创建的环境。如何更新它们以使用 v3.8.0?
我是否需要创建一个新的虚拟环境并重新安装依赖项、脚本等?
注意:有一些现有的问答(例如这个)处理旧的virtualenv包/工具。我特别询问新的内置venv模块,它是自 v3.3 以来 Python 的标准内置模块,并且与virtualenv.
我正在尝试制作一个自定义的 std::fstream,它会在读取时对数据进行编码/解码。
template <class T>
class _filebuf : public std::filebuf {
public:
using transform_type = T;
int_type underflow() override {
auto c = std::filebuf::underflow();
return c < 0 ? c : transform.decode(c);
}
int_type overflow(int_type c) override {
return c < 0 ? c : std::filebuf::overflow(transform.encode(c));
}
private:
transform_type transform;
};
template <class T>
class _fstream : public std::iostream {
public:
using buffer_type = _filebuf<T>;
explicit _fstream(const std::string& path, std::ios::openmode openmode)
: std::iostream(0)
{
this->init(&buffer);
buffer.open(path, openmode);
}
private:
buffer_type …Run Code Online (Sandbox Code Playgroud) 尝试使用Pyinstaller为我的python项目构建可执行二进制文件.
环境细节:
Python - 2.7.6,pip - 6.1.1,setuptools - 21.2.1
我能够成功构建项目.
pyinstaller heatstackapp.py
......
......
83093 INFO: checking COLLECT
83093 INFO: Building COLLECT because out00-COLLECT.toc is non existent
83094 INFO: Building COLLECT out00-COLLECT.toc
jayaprakash@cloudenablers:/opt/core/heatstack/heatstack$
Run Code Online (Sandbox Code Playgroud)
而当我执行二进制文件时,它会抛出错误消息.
jayaprakash@cloudenablers:/opt/core/heatstack/heatstack$ ./dist/heatstackapp/heatstackapp
......
......
File "pbr/packaging.py", line 31, in <module>
File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
exec(bytecode, module.__dict__)
File "setuptools/command/develop.py", line 11, in <module>
File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
exec(bytecode, module.__dict__)
File "setuptools/command/easy_install.py", line 53, in <module>
File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
exec(bytecode, module.__dict__) …Run Code Online (Sandbox Code Playgroud) 我如何实际创建使用 git repo 标签进行版本控制的 python 包的发布/发行版,使用setuptools和pbr?
关于所需的基本设置和配置有很多信息:
setuptools和生成的版本信息pbr但是关于如何实际创建发行版的简单信息在哪里?
即我正在寻找任何命令找到带有版本信息的 git 标记并将其拉入配置信息中,因此可以分发具有该新版本信息的源,并且可以使用类似的方法从脚本中发现版本信息在这个答案中描述。
我正在开发一个项目,该项目将仅通过 git repo 分发给其他开发人员,而不是通过PyPi。该项目将使用 以可执行文件的形式发布给用户pyinstaller,因此此包分发仅用于几个关键目的:
pbr从 Git 存储库标签生成版本,因此这些标签可以成为我们版本控制的真实来源pbr其他自动生成从SVN家常的物品,如作者,manifest.in文件,发行票据等。由于setuptools文档专注于使用PyPi和设置完全可分发和可重用的包pip,并且pbr文档只真正告诉您如何修改setuptools配置以使用pbr,因此我找不到有关如何运行分发/发布过程的信息。
我确定它存在于文档中的某个地方,但经过几次错误的启动后,我在这里问。我看到的每一个地方都暗示每个人要么知道如何做到这一点,要么作为过程的一部分神奇地发生。
我只是错过了显而易见的事情吗?
更新:
根据 sinoroc 的回答,看来我需要研究开发模式安装。即任何开发项目的人都会从git克隆,然后使用setuptools开发安装模式安装。
这不是原始问题的直接一部分,而是暗示的,我相信处于相同情况的人会感兴趣(我无法轻易找到信息)。
在他关于更新某些元数据的回答中提供了更多信息,并通过此setuptools文档链接在“开发模式”下工作
我无法让 VS Code PyTest 代码运行器按照我想要的方式工作。看来 pytest 选项可能是一种全有或全无的情况。
有没有办法在 VS Code 界面中轻松运行不同的 PyTest 选项集?
例如:
默认情况下,运行所有未标记的测试@pytest.mark.slow。
-m "not slow"collected 1 item... 1 item deselected.有时会启用覆盖范围,有时则不启用覆盖范围。
我能看到做到这一点的唯一方法是从命令行运行 PyTest,这会失去自动发现、从内联接口运行/调试单个测试等的好处。
我缺少什么?
注意:当前使用 VS Code 1.45.1、Python 3.7.6 和 PyTest 5.3.5
对于我的应用程序,我需要设置一些小部件参数,例如alignment(Qt::AlignBottom)和其他。但是我无法导入它们(其他PyQt5素材导入没有任何问题)。
使用此代码
from PyQt5 import Qt
progressBar = QProgressBar(splash)
progressBar.setAlignment(Qt.AlignBottom)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Traceback (most recent call last):
File "run_app.py", line 50, in <module>
runSemApp(sys.argv)
File "run_app.py", line 32, in runSemApp
progressBar.setAlignment(Qt.AlignBottom)
AttributeError: 'module' object has no attribute 'AlignBottom'
Run Code Online (Sandbox Code Playgroud)
并使用此作品:
from PyQt5.Qt import *
progressBar = QProgressBar(splash)
progressBar.setAlignment(Qt.AlignBottom)
Run Code Online (Sandbox Code Playgroud)
尽管我有一个可行的解决方案,但我只想导入Qt.AlignBottom而不能*。另外,为什么不Qt.AlignBottom一起工作from PyQt5 import Qt?
当父提交图中没有包含它们的标签或分支时,就会创建孤立提交。例如,如果你犯了一个分支foo,添加提交a和b,然后删除分支(即删除引用foo从提交b),那么这两个a和b,除非你救了他们的哈希值将是不可到达的。
x-x-x-x <- master
\
a-b <- foo (reference then deleted or reset to somewhere on master)
Run Code Online (Sandbox Code Playgroud)
孤立提交的基本 Git 行为是最终垃圾收集并删除它们(我听说默认至少是 30 天)。
将以往的Git从一个回购移动孤儿提交到另一个使用git clone,git fetch或git push命令?
或者 Git 是否有效地忽略了任何不直接调用孤儿哈希(例如checkout或cherry-pick)的操作的这些提交?
我正在将 C# 与 SSH.NET 一起使用,并且已经能够使客户端 SSH 连接正常工作以通过 SSH 执行命令。我可以毫无问题地连接到管理程序 VM 上的 Linux 安装,回读StdOut和StdErr等。
但是,每个命令就像一个全新的会话 - 它总是从 开始/home/user,即使您使用最后一个命令从另一个目录结束也是如此。您可以使用分号将多个命令串在一起:
pwd; cd ..; pwd
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)/home/user /home
但是如果我执行:
pwd
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)/home/user
我回到了那个用户的主目录。
我没有断开和关闭命令之间的会话。以下是连续几个命令的一些示例代码,使用路径更改来说明问题:
public void MultiCommandTest()
{
string output1, output2;
var host = Config.SshHostName;
var port = Config.SshHostPort;
var user = Config.SshUsername;
var pass = Config.SshPassword;
var auth = new PasswordAuthenticationMethod(user, pass);
var info = new ConnectionInfo(host,port,user,auth);
using (var ssh = new SshClient(info))
{
ssh.Connect();
var cmd1 …Run Code Online (Sandbox Code Playgroud) 我最近在VSCODE中进行调试遇到了一个大问题。我试图通过搜索站点并重新安装一些扩展程序来修复自身。
而不是在调试控制台中显示我的结果,而是将以下输出写入我的终端:
cd /Users/AVFL/Documents/Programming ; env "PYTHONIOENCODING=UTF-8"
PYTHONUNBUFFERED=1" /usr/local/bin/python3
/Users/AVFL/.vscode/extensions/ms-python.python-2018.3.1/pythonFiles/PythonTools/visualstudio_py_launcher.py
/Users/AVFL/Documents/Programming 54323 34806ad9-833a-4524-8cd6-18ca4aa74f14 RedirectOutput,RedirectOutput
/Users/AVFL/Documents/Programming/Python/Projects/Entrepeneuring/employeeDatabase.py
Run Code Online (Sandbox Code Playgroud)
我的脚本的结果显示在下面。结果也显示在调试控制台中,但我希望它们只显示在调试控制台中。
我正在使用Python调试:当前文件。我尝试将控制台none更改为外部和集成终端功能,但是我需要将其设置为默认值。
使用Python:Current File时,该如何做才能使其在调试控制台中进行调试?
我看过一篇关于这个问题的文章,但他们将控制台更改为无,并在Python中进行调试:集成终端而不是当前文件
当我在文件夹中创建virtualenv时发生了问题。
python python-3.x visual-studio-code python-3.6 vscode-debugger
python ×7
python-3.x ×3
git ×2
.net ×1
annotations ×1
c# ×1
c++ ×1
c++17 ×1
fstream ×1
git-clone ×1
git-fetch ×1
git-push ×1
inheritance ×1
iostream ×1
orphan ×1
pyi ×1
pyinstaller ×1
pyqt5 ×1
pytest ×1
python-3.6 ×1
python-pbr ×1
python-venv ×1
qt ×1
session ×1
setuptools ×1
ssh ×1
ssh.net ×1
type-hinting ×1
versioning ×1