小编Wol*_*tan的帖子

安装依赖项的最佳实践?

我正在考虑一个运送我的应用程序的好方法,这是一个python包.安装我的包很容易使用pythons distutils包.

麻烦来自我的包依赖的依赖.如果依赖是python包我可以使用distutils再次轻松处理它们,但非python包?他们中的一些人在构建和安装它们时甚至需要非常小心,因为需要设置非常特殊的编译器标志等等......

如果我想为用户自动化安装过程,最好的方法是什么?

  1. 编写一个下载并安装依赖项的make文件
  2. 编写一个安装依赖项的脚本
  3. 没有自动化是最好的.只需编写一个手册,告诉用户如何安装依赖项
  4. ???

请提前获取任何答案或建议

python installation dependencies

5
推荐指数
2
解决办法
3087
查看次数

如何删除Scientific.IO.NetCDF.NetCDFFile中的变量?

是否可以从Scientific.IO.NetCDF.NetCDFFile?中删除变量?如果打开文件如下:

nc = Scientific.IO.NetCDF.NetCDFFile("File.nc", "a")
Run Code Online (Sandbox Code Playgroud)

既不是

del nc.variables["var"]
Run Code Online (Sandbox Code Playgroud)

也不是

nc.variables["var"] = None
Run Code Online (Sandbox Code Playgroud)

将删除变量var.
提前了解任何见解.

python netcdf

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

具有entry_points的Setuptools

我想安装一个带有setuptools的脚本,并进行以下设置:

在我的开发目录中有文件

  • setup.py和
  • z_script.py.

z_script.py文件如下所示:

def main():
    print "Running..."
Run Code Online (Sandbox Code Playgroud)

而我setup.py看起来像这样:

from setuptools import setup

setup(
      name = 'z_script', version = '0.2', 
      entry_points = {"console_scripts": ["z_script = z_script:main"]},
      )
Run Code Online (Sandbox Code Playgroud)

当我python setup.py install成功运行脚本时,安装到正确的bin目录中.

但是,当我运行脚本时z_script发生错误:

Traceback (most recent call last):
  File "./z_script", line 8, in <module>
    load_entry_point('z-script==0.2', 'console_scripts', 'z_script')()
  File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 318, in load_entry_point
  File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 2221, in load_entry_point
  File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 1954, in load
ImportError: No module named z_script
Run Code Online (Sandbox Code Playgroud)

bin …

python installation setuptools

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

如何在GNU图中的单个图中叠加2个图

我有两个文件,其时间为x轴和一个值.我需要在一个图上叠加这两个.目前我尝试使用GNUplot,但在中间打了一针.这是一个示例文件

01:03:05    6

01:03:15    6
Run Code Online (Sandbox Code Playgroud)

和另一个文件

01:03:55    6

01:04:10    6
Run Code Online (Sandbox Code Playgroud)

我需要在一个图中绘制这两个文件(比如x标记和其他一些用于区分的符号).我不知道在GNUplot中是否可以这样做.目前我为每个文件创建了两个网格.但我需要在一个单一的情节中.这是我写的

set multiplot layout 1,2    # engage multiplot mode

set xdata time          ## these three lines control how gnuplot

set timefmt '%H:%M:%S'  ## reads and writes time-formatted data.

set format x '%H:%M:%S' ##

set xtics 05           # make time spacing of 2 minutes

plot 'AAA' u 1:2      # plot the first data set 

plot 'BBB' u 1:2      # plot the second data set 

unset multiplot
Run Code Online (Sandbox Code Playgroud)

任何熟悉GNUplot或任何其他工具(在linux中工作)的人都可以帮助我.

gnuplot

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

如何理解scipy.linalg.lu_factor的枢轴矩阵?

如何手动重构经lu_factor分解的矩阵A?(A = PLU

由于矩阵P的设置,我目前的所有尝试均以失败告终。这是我到目前为止的内容:

A = np.random.rand(3,3)
lu, piv = lu_factor(A)

U = np.triu(lu)
L = np.tril(lu, -1)
L[np.diag_indices_from(L)] = 1.0
Run Code Online (Sandbox Code Playgroud)

我正在寻找使这行打印True的矩阵P

print np.allclose(A, np.dot(P, np.dot(L, U)))
Run Code Online (Sandbox Code Playgroud)

任何提示/链接/建议表示赞赏!

python numpy scipy

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

BLAS sgemm/dgemm如何工作?

我试图sgemm在python中使用ctypes在BLAS中使用该函数.试图解决C = A x B以下代码工作得很好:

no_trans = c_char("n")
m = c_int(number_of_rows_of_A)
n = c_int(number_of_columns_of_B)
k = c_int(number_of_columns_of_A)
one = c_float(1.0)
zero = c_float(0.0)

blaslib.sgemm_(byref(no_trans), byref(no_trans), byref(m), byref(n), byref(k),
               byref(one), A, byref(m), B, byref(k), byref(zero), C, byref(m))
Run Code Online (Sandbox Code Playgroud)

现在我想解决这个公式:C = A"x一个,其中A"是的转置一个和下面的代码运行没有异常,但返回的结果是错误的:

trans = c_char("t")
no_trans = c_char("n")
m = c_int(number_of_rows_of_A)
n = c_int(number_of_columns_of_A)
one = c_float(1.0)
zero = c_float(0.0)

blaslib.sgemm_(byref(trans), byref(no_trans), byref(n), byref(n), byref(m),
               byref(one), A, byref(m), A, byref(m), byref(zero), C, byref(n)) …
Run Code Online (Sandbox Code Playgroud)

python ctypes linear-algebra blas

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

python中的dup,dup2,tmpfile和stdout

这是从一个跟进的问题在这里.


我想去哪里

我希望能够暂时将stdout重定向到临时文件,而python仍然可以打印到stdout.这将涉及以下步骤:

  1. 创建stdout(new)的副本
  2. 创建临时文件(tmp)
  3. 将stdout重定向到 tmp
  4. 告诉python使用newstdout
  5. 重定向tmp到"真正的"标准输出
  6. 告诉python再次使用"真正的"标准输出
  7. 阅读和关闭 tmp

履行

我尝试通过以下方式实现上述方法:

import os
import subprocess
import sys

#A function that calls an external process to print to stdout as well as
#a python print to pythons stdout.
def Func(s, p = False):
    subprocess.call('echo "{0}"'.format(s), shell = True)
    if p:
        print "print"

sil = list() # <-- Some list to store the content of the temp files

print …
Run Code Online (Sandbox Code Playgroud)

python stdout io-redirection dup2 dup

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

Python:如何在引用所有创建的项目的类中实现静态列表以及删除项目的简单方法?

我有一个类将所有创建的引用存储在一个静态列表中,如下所示:

class A:
    _List = []

    def __init__(self):
        A._List.append(self)

    def __del__(self):
        A._List.remove(self)
Run Code Online (Sandbox Code Playgroud)

现在,如果我执行以下操作:

a = A()
del a
Run Code Online (Sandbox Code Playgroud)

a不会被删除,因为它仍然在列表中被引用。但是如果调用析构函数,则引用将被销毁。有没有办法以某种方式强制 python 执行该__del__方法,以便它可以从静态列表中删除?

python static destructor list

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

多线程中的Python单元测试

我想对主要进行文件输入和输出的几个类的功能进行单元测试.此外,我想在多个核心(--jobs = 4)上这样做.

问题是,类创建的文件通常具有相同的名称,并且它们在多个线程中混合在一起.我目前所做的是我在一个单独的目录中运行每个单元测试,如下所示:

def test(self):
  if os.path.exists("UniqueDir"):
    os.system("rm -rf UniqueDir")
  os.mkdir("UniqueDir")
  os.chdir("UniqueDir")
  #Do the actual testing
  os.chdir("..")
  os.rmdir("UniqueDir")
Run Code Online (Sandbox Code Playgroud)

缺点非常明显:

  1. 每个测试必须接收唯一的目录名称
  2. 每个测试都有这个源代码的开销,这看起来真的不太令人满意

我可以使用什么方法来将我的测试彼此分开但是2.以更优雅的方式进行测试?

任何帮助,建议等都表示赞赏!

切里奥沃尔坦

python multithreading unit-testing

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

python中有"标准"基本类吗?

我正在寻找一种方法来创建一个基本的python"对象",我可以从外部分配属性.
目前我正在通过以下方式进行:

我定义了一个空类

class C(object):
    pass
Run Code Online (Sandbox Code Playgroud)

然后我实例化一个对象并分配如下属性:

c = C()
c.attr = 2
Run Code Online (Sandbox Code Playgroud)

来到我的问题

有没有办法实例化一个空的类对象,然后我可以分配如上所示的属性而不定义一个class C

是否有其他更好的方法可以实现我的目标?

python attributes class

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