小编Joe*_*Joe的帖子

Visual Studio Code 的终端中是否有用于“全选”的键盘快捷键?

标题说明了一切:

Visual Studio Code 的终端中是否有用于“全选”的键盘快捷键?

我在 Windows 上尝试了所有常见的方法(Ctrl-A、Ctrl-Shift-A),但都不起作用。

visual-studio visual-studio-code

12
推荐指数
1
解决办法
7193
查看次数

为什么Python在迭代时修改列表时会跳过元素?

我正在用python开发一个程序,我只是注意到语言中的foreach循环有问题,或者列表结构.我将简单地给出一个我的问题的通用示例,因为我在我的程序和我的通用示例中都得到了相同的错误行为:

x = [1,2,2,2,2]

for i in x:
    x.remove(i)

print x        
Run Code Online (Sandbox Code Playgroud)

嗯,这里的问题很简单,我虽然这个代码应该从列表中删除所有元素.好吧,问题是在执行之后,我总是在列表中获得2个剩余元素.

我究竟做错了什么?在此先感谢您的所有帮助.

编辑:我不想清空一个清单,这只是一个例子......

python foreach list

11
推荐指数
3
解决办法
5580
查看次数

如何在 AMD GPU 上运行 Python?

我们目前正在尝试优化一个至少有 12 个变量的系统。这些变量的总组合超过 10 亿。这不是深度学习或机器学习或 Tensorflow 或其他任何东西,而是对时间序列数据的任意计算。

我们已经在 Python 中实现了我们的代码并成功地在 CPU 上运行它。我们还尝试了多处理,这也很有效,但我们需要更快的计算,因为计算需要数周时间。我们有一个由 6 个 AMD GPU 组成的 GPU 系统。我们想在这个 GPU 系统上运行我们的代码,但不知道如何去做。

我的问题是:

  1. 我们可以在支持 AMD 的笔记本电脑上运行简单的 Python 代码吗?
  2. 我们可以在 GPU 系统上运行相同的应用程序吗?

我们读到我们需要调整 GPU 计算的代码,但我们不知道如何去做。

PS:如果您需要,我可以添加更多信息。我尽量保持帖子简单以避免冲突。

python parallel-processing gpu amd

10
推荐指数
1
解决办法
2万
查看次数

如何使用 matplotlib 绘制二维 FEM 结果?

我正在开发一个二维平面有限元工具。其中一项功能是能够可视化特定对象上的应力。

此工具使用以下数据创建四边形网格:

  • 节点:numpy 数组[[x1 y1], [x2 y2], etc]->xy网格中每个节点的坐标

  • 元素:numpy 数组[[1 2 3 4], [2 3 5 6]]->数组的每一行对应于网格的一个特定元素的 4 个点。

我能够实现一种绘制网格的方法:

import matplotlib.pyplot as plt
import matplotlib.collections
import matplotlib.cm as cm

import numpy as np


def showMeshPlot(nodes, elements):

    y = nodes[:,0]
    z = nodes[:,1]

    #/sf/ask/3474821801/
    def quatplot(y,z, quatrangles, ax=None, **kwargs):

        if not ax: ax=plt.gca()
        yz = np.c_[y,z]
        verts= yz[quatrangles]
        pc = matplotlib.collections.PolyCollection(verts, **kwargs)
        ax.add_collection(pc)
        ax.autoscale()

    plt.figure()
    plt.gca().set_aspect('equal')

    quatplot(y,z, np.asarray(elements), ax=None, color="crimson", …
Run Code Online (Sandbox Code Playgroud)

python data-visualization mesh matplotlib

8
推荐指数
2
解决办法
7712
查看次数

为什么gitlab-runner无法克隆我的项目?(主机名不正确,连接失败)

我设置了一个Gitlab服务器,需要使用gitlab-runner.exe运行Windows测试.

gitlab-runner的执行器设置为shell,config.toml看起来像

concurrent = 1
check_interval = 0

[[runners]]
  name = "PC123"
  url = "http://1.2.3.4/ci"
  token = "cd2b093adc5ca09ea41ee4eadb0752"
  executor = "shell"
  [runners.cache]
Run Code Online (Sandbox Code Playgroud)

当测试在提交时生成时,它将失败

Cloning into 'C:/git/builds/ac70aeb9/0/test/myproject'...
fatal: unable to access 'http://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@localhost/test/boundaries.git/': Failed to connect to localhost port 80: Connection refused
Run Code Online (Sandbox Code Playgroud)

我想问题是URL中的主机名"localhost",它指的是gitlab-runner所在的机器.当我在开始时设置服务器时,我使用'localhost'作为服务器主机名.这可能不是最好的主意.:)

在此期间我改变了这个"localgit",但URL没有调整,它仍然显示"localhost".(服务器重启,gitlab-runner servive重启).

可能是服务器的主机名存储在主机名仍然是我克隆的原始仓库中的某个位置localhost.git/config显示正确的IP:

[remote "origin"]
    url = http://1.2.3.4/test/myproject.git
Run Code Online (Sandbox Code Playgroud)

我发现了另一个问题(GitLab运行器无法通过http克隆存储库)提到了一种将其他主机添加到gitlab-runner的方法config.toml,比如

[runners.docker]
    extra_hosts = ["ci.mygitlab:127.0.0.1"]
Run Code Online (Sandbox Code Playgroud)

但我必须使用shell执行者,而不是docker.

git gitlab gitlab-ci gitlab-ci-runner

7
推荐指数
1
解决办法
3296
查看次数

Python for .NET:如何使用同一DLL的不同版本显式创建C#类的实例?

我有一个.cs文件

namespace SomeNamepace
{


    public struct SomeStruct
    {
        ....
    }

    public static class SomeClass
    {
        ....
    }
Run Code Online (Sandbox Code Playgroud)

到目前为止,我使用它与PythonNET一样

import clr
clr.AddReference('c:\\Test\Module.dll')
from SomeNamepace import SomeClass, SomeStruct

SomeClass.SomeMethod(...)
Run Code Online (Sandbox Code Playgroud)

我现在的问题是我需要使用具有相同名称且没有设置版本号的dll,因此PythonNET不会将它们视为两个不同的dll,而是相同.即使我使用AddReference的完整路径导入它们.

现在我想明确地使用它们,如下所述:

Python for .NET:在多个版本中使用相同的.NET程序集

喜欢

lib = clr.AddReference('c:\\Test\Module.dll')
Run Code Online (Sandbox Code Playgroud)

我尝试了很多东西来创建一个SomeClass类似的实例

lib.SomeNamespace.SomeClass()
Run Code Online (Sandbox Code Playgroud)

要么

import System
System.Activator.CreateInstance(lib.GetType('SomeNamespace.SomeClass'))
Run Code Online (Sandbox Code Playgroud)

或使用方法InitializeCreateInstance

或者如下面的链接中所述

from System import Type
type1 = lib.GetType('SomeNamespace.SomeClass')
constructor1 = type1.GetConstructor(Type.EmptyTypes)    
Run Code Online (Sandbox Code Playgroud)

最后一切都失败了,没找到的东西,没有方法等等.

这样做的正确语法是什么?

.net c# python python.net pythonnet

6
推荐指数
1
解决办法
1509
查看次数

使用 COM 和 Python 通过 DirectShow 访问网络摄像头

我想使用 DirectShow 的IAMVideoProcAmp获得对网络摄像头属性的低级别访问权限。

有几个 Python 模块 ) pywin32, pywintypes, comtypes, win32com, pythoncom) 在此上下文中使用,它们似乎以某种方式相关。但我不知道从哪里开始。

我找到了一些例子(这里这里这里),但我不知道如何获得 IID/CLSID 来使用

import win32com.client
clsid='{9BA05972-F6A8-11CF-A442-00A0C90A8F39}'
ShellWindows=win32com.client.Dispatch(clsid)
Run Code Online (Sandbox Code Playgroud)

或者有一个明确的名字,比如

import win32com.client
xl = win32com.client.Dispatch("Excel.Application")
Run Code Online (Sandbox Code Playgroud)

或者

from comtypes import client, GUID
graph = client.CreateObject(some_CLSID)
graph.QueryInterface(...)
Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄这个吗?

我找到了另一个示例 ( dshow.py ),但它有一些我找不到的依赖项 ( interfaces, uuids)。

微软的这个页面列出了这些过程

在 IAMVideoProcAmp 接口的捕获过滤器上调用 QueryInterface。

或者

查询 IAMCameraControl 的捕获过滤器。

并为此说明了一些 C++ 代码:

// Query the capture filter …
Run Code Online (Sandbox Code Playgroud)

python pywin32 comtypes win32com python.net

6
推荐指数
1
解决办法
2183
查看次数

为什么 PyPDF2.PdfFileWriter 忘记我对文档所做的更改?

我正在尝试修改 PDF 文件中的文本。文本可以位于Tj或类型的对象中BDC。我找到了正确的对象,如果我在更改它们后直接读取它们,它们会显示更新的值。

但如果我将完整的页面传递给 PdfFileWriter,更改就会丢失。我可能正在更新副本而不是真实的对象。我查了一下id(),结果不一样。有人知道如何解决这个问题吗?

from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2.generic import TextStringObject, NameObject, ContentStream
from PyPDF2.utils import b_

reader = PdfFileReader("some.pdf")
writer = PdfFileWriter()

for page_idx in range(0, 1):

    # Get the current page and it's contents
    page = reader.getPage(page_idx)

    content_object = page["/Contents"].getObject()
    content = ContentStream(content_object, reader)

    for operands, operator in content.operations:

        if operator == b_("BDC"):

            operands[1][NameObject("/Contents")] = TextStringObject("xyz")

        if operator == b_("Tj"):

            operands[0] = TextStringObject("xyz")

    writer.addPage(page)


# Write the stream
with …
Run Code Online (Sandbox Code Playgroud)

python pdf pdf-generation pypdf python-3.x

6
推荐指数
1
解决办法
3432
查看次数

有没有办法使用 VLC 从网络摄像头流式传输原始 YUY2?(错误:无法创建打包器输出 (YUY2))

我有一个支持两种模式的网络摄像头:压缩 ( MJPEG) 和原始 ( YUY2)。

现在我需要向瘦客户端(CPU 速度慢,有些 GPU 有限)流式传输实时提要,基本上是小型 IoT 设备。

这些设备在同一个局域网中,所以带宽没有问题。这就是为什么我们到目前为止的想法是流式传输原始数据,这样客户端就不必对其进行解码。

我们把命令放在一起

vlc -vvv v4l2:///dev/video0 --sout '#transcode{vcodec=none,acodec=none}:standard{access=http,mux=ts,dst=:8080}'
Run Code Online (Sandbox Code Playgroud)

进入YUY2默认设置。(这基本上Keep Original Video Track在 GUI 中。)但它立即停止并显示以下消息

main decoder error: cannot create packetizer output (YUY2)
Run Code Online (Sandbox Code Playgroud)

我知道无法流式传输原始视频,我必须对其进行转码。但是对于我们的案例来说,下一个最好的事情是什么?

是否有类似不压缩但仍然编码的方式可以在客户端以很少的努力进行解码?

vlc video-streaming

6
推荐指数
0
解决办法
852
查看次数

numpy atleast_3d() 的行为

有人可以向我解释 np.atleast_3d() 的行为吗?

从使用 np.atleast_2d() 我认为这类似于添加 np.newaxis 同时将传递给它的任何内容放在最后一个维度:

np.atleast_2d(3.0)
>>> array([[ 3.]])

np.atleast_2d([1.0, 2.0, 3.0])
>>> array([[1.0, 2.0, 3.0]])
Run Code Online (Sandbox Code Playgroud)

但 np.atleast_3d() 的行为似乎很不同

np.atleast_3d([[2.9, 3.0]])
>>> array([[[ 2.9],
            [ 3. ]]])
Run Code Online (Sandbox Code Playgroud)

文档指出

For example, a 1-D array of shape (N,) becomes a view of shape (1, N, 1),
and a 2-D array of shape (M, N) becomes a view of shape (M, N, 1).
Run Code Online (Sandbox Code Playgroud)

我本来期望 (M, N) 变成 (1, M, N) 并且 (N,) 变成 (1, 1, N, 1)

这种行为难道不是误导吗?

python numpy

5
推荐指数
1
解决办法
963
查看次数