Pycharm在众所周知的工作包中找不到这些函数

np8igboo  于 2023-05-17  发布在  PyCharm
关注(0)|答案(1)|浏览(140)

我正在使用Pycharm开发一个脚本,我想计算特定卫星的β角,即卫星绕地球的轨道平面与太阳地心位置之间的Angular 。
为了实现这一点,我需要获得太阳的RA和DEC,我研究了包pyephem和PyAstronomy,分别使用它们的方法ephem.SUN()和pyals.sunpos()。
问题是这些方法似乎没有定义,pycharm引发了错误Cannot find reference 'sunpos' in '__init__.py'
我试图探索库的内容,确实看起来这些函数没有定义,但肯定有问题,因为可以在网上找到使用这些函数的多个教程。

svujldwt

svujldwt1#

Sun类(注意,只有第一个字母大写,而不是所有三个字母)是从PyEphem在后台编译的C语言模块动态加载的。这个循环为每个行星创建Sun和一个对象:
https://github.com/brandon-rhodes/pyephem/blob/664f9e74cc7a39e839736e373b88b161a6877959/ephem/init.py#L92

# We also create a Python class ("Mercury", "Venus", etcetera) for
# each planet and moon for which _libastro offers specific algorithms.

for index, classname, name in _libastro.builtin_planets():
    exec('''
class %(name)s(_libastro.%(classname)s):
    "Create a Body instance representing %(name)s"
    __planet__ = %(index)r
''' % dict(name=name, classname=classname, index=index))

也许在将来的版本中,我应该放弃循环,而只是有一个直接创建对象的九个定义的堆栈。它会在C和Python代码之间重复行星列表,这可能是我试图避免的;但这份名单多久换一次而且它会更明确,这被认为是Python代码的一个优势; IDE会理解正在发生的事情。

相关问题