编辑
使用 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' …
我有这样的协议缓冲区定义:
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”中。
除了使用不同的包之外,还有解决此问题的方法吗?
让我们定义一个简单的文件夹结构,如下所示:
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 中尝试过,它的行为相同。
以下是我们如何获取添加行的 id(源):
val munichId = Cities.insert {
it[name] = "Munich"
} get Cities.id
Run Code Online (Sandbox Code Playgroud)
获取整行怎么样?我用于map操作select,但它不适用于insert.
我正在尝试使用 Parasoft C/C++ 测试通过静态测试检查“编码标准”。我在 Parasoft 用户指南中只找到了“如何在 Makefile 项目中创建 bdf”部分。
如何为每个项目创建一个 bdf?是否必须使用 makefile 项目?
我有一个由两个部分创建的程序。
\n\n第一个以这种格式复制一个文件名中间有一个整数的文本文件。
\n\nfile = "Filename" + "str(int)" + ".txt" \nRun Code Online (Sandbox Code Playgroud)\n\n用户可以创建任意数量的文件副本。
\n\n该程序的第二部分是我遇到的问题。文件的最底部有一个整数,与文件名中的整数相对应。第一部分完成后,我以读/写格式一次打开每个文件"r+"。这样我就可以file.seek(1000)知道整数在文件中的位置。
现在我认为下一部分应该很容易。我只需要将 str(int) 写入此处的文件即可。但这并不那么容易。在家里的 Linux 中这样做效果很好,但在 Windows 上工作却很困难。我最终要做的file.seek(1000)就是使用 Unicode UTF-8 写入文件。我用程序其余部分的代码片段完成了这一点。我会将其记录下来,以便能够理解正在发生的事情。我希望能够用老式的常规英文 ASCII 字符来编写,而不是用 Unicode 来编写。最终这个程序将被扩展以在每个文件的底部包含更多的数据。必须以 Unicode 格式写入数据将使事情变得极其困难。如果我只是写入数据而不将其转换为 Unicode,这就是结果。该字符串应该说#2 =1534,但它说#2 =\xe3\x84\xa0\xe3\x8c\xb5433.
如果有人可以告诉我我做错了什么,那就太好了。我希望只使用类似file.write(\'1534\')将数据写入文件的方法,而不必使用 Unicode UTF-8 进行操作。
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) 以下代码抛出一个 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)
为什么?
我需要用白色替换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)
但透明层变成黑色。有人可以帮助我吗?
以下是用于解压缩返回值的有效且可读的代码段。
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)
我怎样才能以可读的方式解压它?
我无法通过 Kotlin JVM 插件使用 Kotlinx 序列化
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,但我没有使用它。有人可以帮忙吗?