小编Mar*_*lla的帖子

从两条不同路径导入的类不相等?

似乎使用两个不同的PYTHONPATHs 导入的实体不是相同的对象.

我在我的代码中遇到了一个小问题,我想用一个小例子来解释它.

我创建了源代码树:

a/
  __init__.py
  b/
    __init__.py
    example.py
Run Code Online (Sandbox Code Playgroud)

在example.py中:

class Example:
  pass
Run Code Online (Sandbox Code Playgroud)

从文件夹的父级a,我运行python和这个测试:

>>> import sys
>>> sys.path.append("/home/marco/temp/a")
>>> 
>>> import a.b.example as example1
>>> import b.example as example2
>>> 
>>> example1.Example is example2.Example
False
Run Code Online (Sandbox Code Playgroud)

所以问题是:结果为什么False?即使通过两个不同的路径导入,该类也是相同的.如果类是自定义异常并且您尝试捕获它,那么这是一个完全混乱except.

用python 3.4.3测试

python python-module python-import

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

SVN:使用TortoiseSVN更新工作副本以排除外部因素?

有没有办法更新工作副本以排除TortoiseSVN的外部?

我有一份工作副本,我用外部检查.我正在对包含路径进行一些更新,现在将这些外部文件放在不同的项目中.我想更新我当前的工作副本以排除外部 - 基本上从我的本地副本中删除外部.

由于我的工作副本发生了大量变化,只需删除并重新检查,省略外部,不是一个有效的选择.

我正在使用Tortoise SVN 1.7.2,使用1.7.x格式.

编辑:好的,看起来我正在寻找的是不可能的.似乎'SVN Update'将始终使用外部更新,即使使用'Omit Externals'(--ignore-externals)检出存储库也是如此.

编辑2:好的,找到了解决方案.似乎不是每个存储库标记它的方法.但全球:'TortoiseSVN'=>'设置'=>'高级'将'IncludeExternals'设置为false.这将阻止'SVN Update'更新外部.看起来强制进行外部更新,我需要转到"更新到修订版本..."这是可行的,因为这种情况不太可能发生.(我有5个结账,只有1个需要外部,并且只有当道具更新.2在结账时只需要一次)

svn tortoisesvn svn-externals

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

如何在argparse中管理优先级?

我正在使用argparse管理命令行选项,我想管理两个选项,--check和--nocheck.我实际上在做这样的事情mybadscript.py:

[...]
args = parser.parse_args()

if args.check:
    check = True

if args.nocheck:
    check = False
[...]
Run Code Online (Sandbox Code Playgroud)

问题是如果以这种方式启动脚本:

python mybadscript.py --nocheck --check

check将被设置为False.这是不正确的,因为最后一个选项是--check.

我该如何正确管理它们?

PS:我知道你只需要一个选项就可以轻松避免它,但我知道如何管理选项优先级argparse,因为你可以在更复杂的场景中遇到它.

PPS:建议的答案偶然回答了我的问题,但相关问题并不相同.

python python-2.7 argparse

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

日志记录:如何为处理程序设置最大日志级别

使用logging库,您可以登录到文件.您必须设置文件处理程序日志级别.任何级别等于或高于指定级别的日志都将记录到文件中.

但是,如果我想将错误和异常记录到文件myapp_errors.log,将信息记录到另一个文件myapp_info.log以及任何其他日志到另一个文件myapp_debug.log,该怎么办?唯一的选择是创建三个记录器?

python logging

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

无法使用python 3.6 virtualenv从pip安装软件包

我为python 3.6创建了虚拟环境,并尝试安装crc16软件包。我收到此错误:

/usr/bin/ld: cannot find -lpython3.6m
Run Code Online (Sandbox Code Playgroud)

我尝试使用修复它

export PKG_CONFIG_PATH=/path/to/python3.6/binaries/usr/local/lib/pkgconfig
Run Code Online (Sandbox Code Playgroud)

我用

$ pkg-config --libs python3
-L/usr/local/lib -lpython3.6m
Run Code Online (Sandbox Code Playgroud)

但不幸的是,它仍然无法正常工作。

使用以下命令将Python 3.6安装在自定义前缀中 make install DESTDIR=/path/to/destdir

python pip pkg-config python-3.x

5
推荐指数
0
解决办法
475
查看次数

我可以将 JSON-LD 转换为 Java 对象吗?

编辑:我改变了主意。我会找到一种方法来生成 Java 类并将 JSON 作为该类的对象加载。


我刚刚发现存在一个JSON名为的变体JSON-LD。

在我看来,这是一种更加结构化的定义方式JSON,它让我想起了XML关联的模式,例如XSD.

我可以从创建一个 Java 类JSON-LD,在运行时加载它并使用它转换JSON-LD为该类的实例化吗?

我阅读了这两种实现的文档,但没有发现任何相关内容。也许我读得不好?

java json jena json-ld

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

设置http.sslCAInfo后无法克隆Github存储库

我必须管理一个私人git仓库,所以我创建了一个.pem并将http.sslCAInfo设置为.pem的路径。但是现在我不能再从Github的仓库中克隆了:

致命:无法访问“ https://github.com/KidSysco/jquery-ui-month-picker/ ”:服务器证书验证失败。CAfile:/home/marco/sources/git_certs/cert.pem CRLfile:无

http.sslCAInfo的默认值是什么?我尝试将其设置为“”,但现在我得到了

致命:无法访问“ https://github.com/KidSysco/jquery-ui-month-picker/”:SSL CA证书存在问题(路径?访问权限?)

git ssl

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

如何获取 Spring 中所有会话的列表?

我正在使用 Spring Boot 2 和 Gradle 开发一个 Web 应用程序。目前,我实现了自定义记得我机构(WITHOUT春季安全),我也加入了一系列的cookie,如所描述这里。

现在我想在令牌不匹配的情况下使所有用户的会话无效。我将获得用户的所有会话(我保存在“userSession”属性中的 Bean)。我能怎么做?

PS:我没有使用 Spring Security。

java session spring spring-boot

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

Visual Basic .NET:如何从具有参数的方法中创建任务

我有一个带参数的子方法:

Public Sub mysub(ByVal x As Object)
    [...]
End Sub
Run Code Online (Sandbox Code Playgroud)

要将其作为线程启动,我只需执行以下操作:

Dim x1 as String = "hello"
mythread = New Thread(AddressOf mysub)
mythread.Start(x1)
Run Code Online (Sandbox Code Playgroud)

我会转换mysub一个async函数。在线教程(例如本教程)仅适用于没有参数的方法。

我尝试过:

Dim mytask As Task
Dim x1 as String = "hello"
mytask = New Task(Me.mysub, x1)
mytast.Start()
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误:

错误BC30455未为“公共子mysub(x作为对象)”的参数“ x”指定参数

vb.net async-await

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

无法使用 asyncio.ensure_future() 获取堆栈跟踪

这是我尝试过的:

>>> import asyncio
>>> @asyncio.coroutine
... def f():
...   print("RUN")
...   raise Exception("ciao")
... 
>>> asyncio.ensure_future(f())
<Task pending coro=<coro() running at /usr/lib/python3.4/asyncio/coroutines.py:139>>
>>> loop = asyncio.get_event_loop()
>>> loop.run_forever()
RUN
Run Code Online (Sandbox Code Playgroud)

并且不检索堆栈跟踪。如果我运行协程asyncio.run_until_complete(f())就没有问题。

python stack-trace python-asyncio

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

如何使用OpenPdf将HTML转换为Pdf

如何使用OpenPDF将HTML转换为PDF ?

据我所知,OpenPdf是Itext 4的一个分支。不幸的是,我找不到Itext 4文档。

java pdf openpdf

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

输出流与缓冲输出流

在java 8中,以下之间有什么真正的区别:

try (OutputStream os = Files.newOutputStream(path)) {
    [...]
}
Run Code Online (Sandbox Code Playgroud)

和

try (OutputStream os = new BufferedOutputStream(Files.newOutputStream(path))) {
    [...]
}
Run Code Online (Sandbox Code Playgroud)

我阅读了这个SO question and answers,但它让我很困惑。

PS:Java 11 有什么变化?

java outputstream file java-8 java-11

0
推荐指数
2
解决办法
3202
查看次数

ElementNSImpl 无法在带有 Java Zulu 11 的 Eclipse 中工作

编辑

我尝试这样做gradle build,但它给了我这个错误:

包 com.sun.org.apache.xerces.internal.dom 在模块 java.xml 中声明,该模块不会导出它

我检查过gradle dependencies,但没有人使用java.xml


我们仅在代码的一部分中使用 ElementNSImpl(我不知道为什么......)。不管怎样,当我尝试切换到 Java 11 Zulu 时,Eclipse 给了我这个错误:

com.sun.org.apache.xerces.internal.dom.ElementNSImpl 类型不可访问

对于 OpenJDK 8,我们必须使用以下命令导入它xerces:xercesImpl:2.6.2-jaxb-1.0.6

我用 Eclipse 检查了该类,它是一个公共类,位于 Zulu 11 jar 下。

java eclipse azul-zulu java-11

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