我正在考虑一个运送我的应用程序的好方法,这是一个python包.安装我的包很容易使用pythons distutils包.
麻烦来自我的包依赖的依赖.如果依赖是python包我可以使用distutils再次轻松处理它们,但非python包?他们中的一些人在构建和安装它们时甚至需要非常小心,因为需要设置非常特殊的编译器标志等等......
如果我想为用户自动化安装过程,最好的方法是什么?
请提前获取任何答案或建议
是否可以从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
.
提前了解任何见解.
我想安装一个带有setuptools的脚本,并进行以下设置:
在我的开发目录中有文件
该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 …
我有两个文件,其时间为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中工作)的人都可以帮助我.
如何手动重构经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)
任何提示/链接/建议表示赞赏!
我试图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) 这是从一个跟进的问题在这里.
我希望能够暂时将stdout重定向到临时文件,而python仍然可以打印到stdout.这将涉及以下步骤:
new
)的副本tmp
)tmp
new
stdouttmp
到"真正的"标准输出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) 我有一个类将所有创建的引用存储在一个静态列表中,如下所示:
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__
方法,以便它可以从静态列表中删除?
我想对主要进行文件输入和输出的几个类的功能进行单元测试.此外,我想在多个核心(--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)
缺点非常明显:
我可以使用什么方法来将我的测试彼此分开但是2.以更优雅的方式进行测试?
任何帮助,建议等都表示赞赏!
切里奥沃尔坦
我正在寻找一种方法来创建一个基本的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 ×9
installation ×2
attributes ×1
blas ×1
class ×1
ctypes ×1
dependencies ×1
destructor ×1
dup ×1
dup2 ×1
gnuplot ×1
list ×1
netcdf ×1
numpy ×1
scipy ×1
setuptools ×1
static ×1
stdout ×1
unit-testing ×1