小编Alp*_*ren的帖子

如何使用 VSCode 在虚拟环境中调试 python 代码?

编辑

使用 VSCode,我在虚拟环境中调试时遇到问题,该环境具有未安装在base环境中的不同软件包。使用命令激活环境后activate my_env,我可以使用通常的 python 命令将环境中的包用作python main.py. 但是在调试时,我无法使用仅安装在my_env. 如何使用 VSCode 在虚拟环境中调试 python 代码?

这是问题的摘要。其余的有一些关于我的案例的具体信息。

编辑前

我正在尝试xmltodict使用 Visual Studio 代码使用带有简单代码的包。

import xmltodict

with open('C:\\Users\\user\\foo.xml') as f:
    db_dict = xmltodict.parse(f.read())

print(db_dict)
Run Code Online (Sandbox Code Playgroud)

我有一个名为 的虚拟环境my_env,我xmltodict在其中安装了软件包。当我用 激活环境时activate my_env,此代码工作正常。但是,当我尝试使用 vscode调试选项时,它会No module named 'xmltodict'出错。因为 vscode 调试按钮打开新的 cmd 并在其中运行调试命令,我停止调试并输入activate my_env该 cmd 并尝试再次调试,但仍然找不到模块。另外,我在 vscode 中尝试了 jupiter notebook,它也没有看到包。

我看到import xmltodict在 vscode 中用红色下划线并显示Unable to import 'xmltodict' …

python debugging anaconda visual-studio-code

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

不同的枚举,protobuf 中的值相同

我有这样的协议缓冲区定义:

package com.asd;

enum AType {
    A1 = 0;
    A2 = 1;
    Unknown = 2;
}

enum BType {
    B1 = 0;
    B2 = 1;
    Unknown = 2;
}
Run Code Online (Sandbox Code Playgroud)

编译时,我收到此错误:

“com.asd”中已定义“未知”。请注意,枚举值使用 C++ 作用域规则,这意味着枚举值是其类型的同级,而不是其子级。因此,“Other”在“com.asd”中必须是唯一的,而不仅仅是在“BType”中。

除了使用不同的包之外,还有解决此问题的方法吗?

protocol-buffers kotlin

9
推荐指数
2
解决办法
9807
查看次数

VSCode Python 调试器 FileNotFoundError

让我们定义一个简单的文件夹结构,如下所示:

project
+---code
|       main.py
|
\---data
        foo.txt
Run Code Online (Sandbox Code Playgroud)

主要.py:

foo_path = "./../data/foo.txt"

with open(foo_path) as f:
    s = f.read()
    print(s)
Run Code Online (Sandbox Code Playgroud)

此代码在使用python main.py命令正常运行时运行良好,但在使用 VSCode Python 调试器进行调试时会引发以下错误。

Exception has occurred: FileNotFoundError
[Errno 2] No such file or directory: './../data/foo.txt'
  File "C:\Users\user\Workspaces\project\code\main.py", line 3, in <module>
    with open(foo_path) as f:
Run Code Online (Sandbox Code Playgroud)

我在 Windows 10 中使用 VSCode 和 Python 3.7.1 Anaconda 版本。我知道文件路径就像 Linux 路径,但它在正常运行时可以工作。我在Python VSCode Extension 的 GitHub 存储库中找不到任何未解决的问题。这是一个常见错误,还是我做错了什么?

另外,如果我定义foo_path = ".\\..\\data\\foo.txt",它的行为与前一个相同。运行正常,调试时也报同样的错误。

如何在不使用额外包(如os.path或使用完整文件路径)的情况下解决此问题?

编辑:我在 Ubuntu 18.04 中尝试过,它的行为相同。

python debugging visual-studio-code

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

如何在 Kotlin Exposed 中获取插入的行?

以下是我们如何获取添加行的 id():

val munichId = Cities.insert {
    it[name] = "Munich"
} get Cities.id
Run Code Online (Sandbox Code Playgroud)

获取整行怎么样?我用于map操作select,但它不适用于insert.

kotlin kotlin-exposed

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

如何在 Parasoft 中创建构建数据文件 (bdf)?

我正在尝试使用 Parasoft C/C++ 测试通过静态测试检查“编码标准”。我在 Parasoft 用户指南中只找到了“如何在 Makefile 项目中创建 bdf”部分。

如何为每个项目创建一个 bdf?是否必须使用 makefile 项目?

c testing parasoft

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

使用 Python3 以 ASCII 格式写入文件,而不是 UTF8

我有一个由两个部分创建的程序。

\n\n

第一个以这种格式复制一个文件名中间有一个整数的文本文件。

\n\n
file = "Filename" + "str(int)" + ".txt" \n
Run Code Online (Sandbox Code Playgroud)\n\n

用户可以创建任意数量的文件副本。

\n\n

该程序的第二部分是我遇到的问题。文件的最底部有一个整数,与文件名中的整数相对应。第一部分完成后,我以读/写格式一次打开每个文件"r+"。这样我就可以file.seek(1000)知道整数在文件中的位置。

\n\n

现在我认为下一部分应该很容易。我只需要将 str(int) 写入此处的文件即可。但这并不那么容易。在家里的 Linux 中这样做效果很好,但在 Windows 上工作却很困难。我最终要做的file.seek(1000)就是使用 Unicode UTF-8 写入文件。我用程序其余部分的代码片段完成了这一点。我会将其记录下来,以便能够理解正在发生的事情。我希望能够用老式的常规英文 ASCII 字符来编写,而不是用 Unicode 来编写。最终这个程序将被扩展以在每个文件的底部包含更多的数据。必须以 Unicode 格式写入数据将使事情变得极其困难。如果我只是写入数据而不将其转换为 Unicode,这就是结果。该字符串应该说#2 =1534,但它说#2 =\xe3\x84\xa0\xe3\x8c\xb5433.

\n\n

如果有人可以告诉我我做错了什么,那就太好了。我希望只使用类似file.write(\'1534\')将数据写入文件的方法,而不必使用 Unicode UTF-8 进行操作。

\n\n
while a1 < d1 :\n    file = "file" + str(a1) + ".par"\n    f = open(file, "r+")\n    f.seek(1011)\n    data = f.read()  #reads the data from that point in …
Run Code Online (Sandbox Code Playgroud)

unicode utf-8 python-3.x

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

类型错误:“DType”对象不可调用

以下代码抛出一个 TypeError

import tensorflow as tf
h=tf.int32(6)
Run Code Online (Sandbox Code Playgroud)

错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'DType' object is not callable
Run Code Online (Sandbox Code Playgroud)

为什么?

python tensorflow

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

如何用枕头中的颜色替换透明

我需要用白色替换png图像的透明层。我试过了

from PIL import Image
image = Image.open('test.png')
new_image = image.convert('RGB', colors=255)
new_image.save('test.jpg', quality=75)
Run Code Online (Sandbox Code Playgroud)

但透明层变成黑色。有人可以帮助我吗?

python image python-3.x pillow

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

如何在 Scala 中解压 Option[(Int, Int)]

以下是用于解压缩返回值的有效且可读的代码段。

def func: (Int, Int) = (1, 2)

val (a, b) = func
Run Code Online (Sandbox Code Playgroud)

返回的函数Option呢?例如:

def func2: Option[(Int, Int)] = Some((1, 2))
Run Code Online (Sandbox Code Playgroud)

我怎样才能以可读的方式解压它?

scala

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

如何通过 jvm 插件使用 Kotlinx 序列化

我无法通过 Kotlin JVM 插件使用 Kotlinx 序列化

在Groovy DSL 的说明中:

plugins {
    id 'org.jetbrains.kotlin.multiplatform' version '1.5.0'
    id 'org.jetbrains.kotlin.plugin.serialization' version '1.5.0'
}
Run Code Online (Sandbox Code Playgroud)

因为我已经使用了org.jetbrains.kotlin.jvm,所以我想将它与 JVM 插件一起使用,但说明没有明确显示如何使用。

在 中build.gradle,我尝试使用:

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.5.0'
    id 'org.jetbrains.kotlin.plugin.serialization' version '1.5.0'
    ...
}
Run Code Online (Sandbox Code Playgroud)

在代码中:

import kotlinx.serialization.*
Run Code Online (Sandbox Code Playgroud)

而且,我收到编译错误 ( Unresolved reference: serialization)。如何通过 JVM 插件使用 kotlinx 序列化?另外,我需要在 Groovy DSL 语法中使用它。说明已经显示了它适用于 Kotlin DSL,但我没有使用它。有人可以帮忙吗?

groovy gradle kotlin kotlinx.serialization

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