免责声明:我不是Python专家,我知道以前可能有人问过这个问题,但我没能找到它(或者意识到我找到了它)
目标:
我创建了一个Python程序,它由3个Python文件组成,Qm_op.py
、Qm_basis.py
和Hamiltonian_1d_Spin.py
(每个文件都包含一个类),它们各自正确运行。这些Python文件位于
C:\Users\FriendlyLagrangian\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\qusim
目录(qusim
应该是包的名称),这样Python就可以在任何地方找到它。这样做的目的是能够在其他任何地方使用此软件包
import qusim
就像我为numpy
所做的一样
什么有效:
如果我在任何地方创建一个新的Python文件,或者运行一个包含以下代码的Python终端
>>> import qusim
>>> qusim
<module 'qusim' from 'C:\\Users\\FriendlyLagrangian\\AppData\\Local\\Programs\\Python\\Python38-32\\lib\\site-packages\\qusim\\__init__.py'>
看来至少有些事情进展顺利。(如您所见,我在同一目录中还有一个空的__init__.py
)
什么不起作用:
如果我在某个地方创建一个新文件,然后我尝试
>>> import qusim
>>> basis = Qm_basis(3,2)
就像在我得到的文件Qm_basis.py
中的类Qm_basis
下编写它一样
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
basis = Qm_basis(3,2)
NameError: name 'Qm_basis' is not defined
这不是布埃诺。但是如果我跑
>>> from qusim import Qm_basis
>>> basis = Qm_basis.Qm_basis(3,2)
>>> basis.bin
[[0, 1, 1], [1, 0, 1], [1, 1, 0]] (i.e. this is correct output)
成功!但它很难看,而且不像我读过的包那样工作(至少在语法方面)。有趣的是,运行类似的操作可以获得更高的收益
>>> from qusim import Qm_basis
>>> basis = Qm_basis(3,2)
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
basis = Qm_basis(3,2)
TypeError: 'module' object is not callable
我尝试过的:
在阅读时,我尝试了很多方法,从使用from
、import
和我的文件名的所有可能排列来修改__init__.py
的内容,但都不起作用。我也很困惑为什么,但我的却不是
非常感谢你抽出时间,我真的被困住了
目前没有回答
相关问题 更多 >
编程相关推荐