我在Centos8上使用Python 3.6.8.
在/home/azkaban/python_codes/activity下,我将dbconnect.py,init.py,pickgoods.py,randomrow.py这些Python文件放在下面。
activity
----__init__.py
----dbconnect.py
----pickgoods.py
----randomrow.py
在Pickgoods.py中
from activity import dbconnect, randomrow
...
dbconnect.methodname1()
...
randomrow.methodname2()
当我在Centos shell命令中运行'python3/home/azkaban/python_codes/activity/pickgoods.py'时,它失败了。
Traceback (most recent call last):
File "/home/azkaban/python_codes/activity/pickgoods.py", line 13, in <module>
from activity import dbconnect, randomrow
ModuleNotFoundError: No module named 'activity'
但在Windows10上的PyCharm中,它运行良好。
要使activity
被您的代码找到,您需要在sys.path
中有包含activity/
的文件夹。 我认为PyCharm会自动将“当前目录”添加到sys.path
中,或者在幕后做一些其他神奇的事情。
pickgoods.py
,则包含它的文件夹会自动添加到sys.path
中。 因此,这应该会起作用import dbconnect, randomrow
这个解决方案有点次优,因为它依赖于文件系统上的入口点脚本位置。 如果您的项目开始有子文件夹和多个入口点,我确实推荐解决方案2.
import setuptools
setuptools.setup(name='mypackage', packages=setuptools.find_packages())
并将软件包安装为可编辑状态,使用
python -m pip install -e <folder_with_setup.py>