小编Bor*_*ris的帖子

Numpy失败了python-dbg(未定义的符号:Py_InitModule4_64)

在64位Ubuntu 12.04上使用Python 2.7.3和Numpy 1.6.2.其他版本均存在于系统(Python的2.6.4和1.6.1 NumPy的)上,但据我所知,这些对下面所描述的事件没有影响.

我正在使用一个使用Numpy的Python程序,当我尝试从程序运行某个命令时出错.所以,我决定安装python2.7-dbg来运行程序,看看是否有助于调试.所以我跑了

$ python-dbg <command>
Run Code Online (Sandbox Code Playgroud)

代替

$ python <command>
Run Code Online (Sandbox Code Playgroud)

但是,这会给numpy提供一个"未定义的符号:Py_InitModule4_64"错误.我试图跑到底是什么并不重要; 如果使用"常规"python运行成功的命令也会发生错误.即使我尝试将numpy导入空白的python-dbg提示符,也会发生这种情况:

$ python-dbg
Python 2.7.3 (default, Aug  1 2012, 04:55:00)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
    import add_newdocs
  File "/usr/local/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
    from type_check import *
  File …
Run Code Online (Sandbox Code Playgroud)

python ubuntu numpy

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

Python鼻子测试继承:从子类加载单元测试装置

我正在将Python项目的测试套件从unittest转换为nose.该项目的现有框架(基于unittest)相当笨重,包含大量用于测试发现和运行的高度定制的代码,所以我试图迁移到鼻子以使一切更加简化.

但是,我遇到了生成测试套件的代码问题.

项目的框架有两种运行测试的方法.一个是

class TestSomething(unittest.TestCase):

    def setUp(self):
        ...

    def test_x(self):
        ...

    def test_y(self):
        ...

suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestSomething))
Run Code Online (Sandbox Code Playgroud)

这是"直截了当"的方式,它是所有Nose示例和教程所展示的,并且它的工作原理.但是,第二种方法是定义一个包含所有测试逻辑的测试类,然后在包含不同设置配置的各个子类中创建测试用例,并从超类继承测试:

class TestSomething(unittest.TestCase):

    def test_x(self):
        ...

    def test_y(self):
        ...

class TestCase1(TestSomething):

    def setUp(self):
        ...

class TestCase2(TestSomething):

    def setUp(self):
        ...

suite = unittest.TestSuite()

cases = [TestCase1,TestCase2]
suite.addTests([unittest.makeSuite(case) for case in cases])
Run Code Online (Sandbox Code Playgroud)

这就是Nose失败的原因.它首先尝试运行测试方法,这显然不起作用,因为超类中没有setUp(),并且还没有定义test_x()和test_y()中使用的许多变量.

我没有在任何地方找到任何这样做的例子,而Nose(相当稀疏且难以导航)的文档似乎也没有提到它.如何使用鼻子?任何帮助将不胜感激.

python unit-testing nose nosetests

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

Python:如果导入成功,__ file__可以为None吗?

我正在使用Python 2.6/2.7代码,其中包含以下内容:

try:
    import gmpy
    gmpy_imported=True
except ImportError:
    gmpy_imported=False

if gmpy_imported and gmpy.__file__ is None:
    gmpy_imported=False
Run Code Online (Sandbox Code Playgroud)

我可以理解这try-except部分,用于查看是否已在系统上安装了gmpy - 如果没有,则执行任何操作.但是,我不明白为什么if gmpy.__file__ is None检查是必要的; 这似乎是多余的.

是否有任何情况下导入包似乎已成功,但包的路径实际上是空的?这次仔细检查是否可以防止安装损坏?

python import

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

Oracle数据库INTERNAL_USE

INTERNAL_USEOracle数据库中的子句是什么意思?例如:

ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;

我仅在示例和代码片段中看到了此信息,除了在该线程上含糊不清的注释,表明它不应该被客户使用并且未被记录之外,没有找到任何其他信息,但是该注释来自2005年,所以我想知道此后是否有任何变化。

sql oracle

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

提取大写字母和数字

我正在尝试处理一个字符串,以便只采用大写字母和数字.试图使用PATINDEX,因为我想保持这种简洁 - 它将成为更大的查询的一部分.

有很多例子显示出类似的东西,但我似乎错过了一些东西.到目前为止我已经有了

DECLARE @string varchar(100)

SET @string = 'AbcDef12-Ghi'

WHILE PATINDEX('%[^A-Z0-9]%',@string) <> 0
    SET @string = STUFF(@string,PATINDEX('%[^A-Z0-9]%',@string),1,'')

SELECT @string
Run Code Online (Sandbox Code Playgroud)

根据例如这个问题,然而这似乎并没有做我需要的.

使用[^0-9]输出12,这是正确的.

[^A-Z]输出AbcDefGhi,即大写和小写.如果我使用[^A-Z]或者[^a-z]都返回所有字母都没关系.

我想我可能会遗漏一些简单的东西?我发现了一些建议,指整理并试图用逐份PATINDEX按照这个,但不能让它开始工作.

注意:我这样做是作为SQL Server数据库上的一次性查询来查找一些数据 - 这不会在其他任何地方重复使用,所以像性能,SQL注入(在这种情况下经常提到)等不是关心.

t-sql sql-server sql-server-2008-r2

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