0

问题+代码

我正在尝试安装一个名为 PlasmaKin 的 python 库包(此处)。它基于 Linux 并使用 Python 2.7 语法。我的问题在下面显示的init .py- 中。(该软件包包括 pkg95.py 和 pkgfortran.py。)我通过 Cygwin 64 位运行 Python,因此os.name='posix'条件为真。以下定义 libpath 的命令是我遇到的主要问题。

#import sys, os
import os
from ctypes.util import find_library

# Select PlasmaKin library full pathname
if os.name == 'posix':
    # In Unix-type OS find_library doesn't return the full pathname. So we need
    # to ask ldconfig...
    libpath = os.popen('ldconfig -p | grep libck-','r').split()[3]
elif os.name == 'nt':
    libpath = find_library("libck.dll")
# Detect which compiler has been used to compile the library and import the
# module with the corresponding function interfaces.
if os.system('grep gfortran %s -q' % libpath) == 0:
    #import pkgfortran as pk
    from pkgfortran import *
elif os.system('grep g95 %s -q' % libpath) == 0:
    #import pkg95 as pk
    from pkg95 import *
elif os.system('grep intel %s -q' % libpath) == 0:
     #import pkifort as pk
    from pkifort import *
else:
    dummy = os.popen('nm %s |grep _st_open' % libpath,'r').read().split('_')
    raise Exception('Sorry, no implementation for the compiler (%s) used for %s' % (dummy,libpath))

当我在 Cygwin 中运行程序时,我会看到以下错误消息。我试过弄乱 '.split()[3]' 部分,但删除它会返回“ >>/bin/sh: ldconfig: command not found

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/pypk/__init__.py", line 16, in <module>
libpath = os.popen('ldconfig -p | grep libck-','r').split()[3]
AttributeError: 'file' object has no attribute 'split'

尝试的解决方案

我的解决方案尝试是在我的 Anaconda 提示符(Windows 操作系统,os.name='nt')中运行代码,但这只会返回一个错误,即 grep 不是可识别的命令(我尝试用 Windows 友好的 grep 替换它替代但没有运气)。此外,提到的“.split()[3]”的玩弄表明找不到 lbconfig。我还在一些资料中看到 lbconfig 不包含在 Cygwin 中。如果这是真的,我该如何解决这个问题?

手动安装软件包没有返回任何错误,而且问题似乎是基于丢失或未编译的 lbconfig 或 libck.dll (分别用于我的 Cygwin 和 Anaconda 提示测试)。上面的链接指向 PlasmaKin 站点,如果您有兴趣测试它,那么该页面上还有指向 SourceForge 下载的链接。这个程序对我的研究很重要,我感谢任何建设性的反馈。

4

0 回答 0