ubuntu里运行oxDNA出现attributeerror:module object has no attribute mod

运行:/home/qin/桌面/oxDNA_2.4_RJUNE2019/oxDNA/UTILS/generate.py 60 seq.txt

出错:Warning: using crappy, stripped down, slow version of numpy.
Found 1 lines
Adding circular single strand of 60 bases
Traceback (most recent call last):
File "/home/qin/桌面/oxDNA_2.4_RJUNE2019/oxDNA/UTILS/generate.py", line 162, in
main()
File "/home/qin/桌面/oxDNA_2.4_RJUNE2019/oxDNA/UTILS/generate.py", line 159, in main
read_strands(filename, box_side)
File "/home/qin/桌面/oxDNA_2.4_RJUNE2019/oxDNA/UTILS/generate.py", line 128, in read_strands
start_pos=cdm, double=bool_double, circular=bool_circular), check_overlap=True)
File "/home/qin/桌面/oxDNA_2.4_RJUNE2019/oxDNA/UTILS/generators.py", line 150, in generate
smooth_factor = np.mod(bp,BP_PER_TURN)/float(bp) + 1
AttributeError: 'module' object has no attribute 'mod'

重新安装一下numpy,np应该是导入numpy时起的别名。
https://blog.csdn.net/road_of_god/article/details/121218570

numpy是由mod属性的,可以使用np.mod,但是这里报错信息说没有该属性,报错可得原因有
1.没有导numpy模块 即 import numpy as np
2.就是虽然导入numpy模块但是没有为numpy命名别名,即少写了as np

你没有装numpy这个模块,代码前几行是

try:
    import numpy as np
except:
    import mynumpy as 

导致会import作者的自己的包,但是看起来原作者没有维护自己写的模块,所以里面没有mod这个函数

问题定位:

  查看import库的源文件,发现源文件存在且没有错误,同时存在源文件的.pyc文件。



  问题解决方法:

  1. 命名py脚本时,不要与python预留字,模块名等相同。

  2. 删除该库的.pyc文件(因为py脚本每次运行时均会生成.pyc文件;在已经生成.pyc文件的情况下,若代码不更新,运行时依旧会走pyc,所以要删除.pyc文件),重新运行代码;或者找一个可以运行代码的环境,拷贝替换当前机器的.pyc文件即可。
  1. 命名py脚本时,不要与python预留字,模块名等相同。
          2. 删除该库的.pyc文件(因为py脚本每次运行时均会生成.pyc文件;在已经生成.pyc文件的情况下,若代码不更新,运行时依旧会走pyc,所以要删除.pyc文件),重新运行代码;或者找一个可以运行代码的环境,拷贝替换当前机器的.pyc文件即可。

numpy模块你安装了吗