过去,为了在python中使用/导入我自己的定制包,我只需编辑我的.bash_配置文件,以便将它们附加到我的$PATH环境变量中。在>> echo $PATH
/Users/MYNAME/google-cloud-sdk/bin:/Users/MYNAME/anaconda/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/Users/MYNAME/Documents/Python_Programs/MYPACKAGE1:/Users/MYNAME/Documents/GitRepos/MYPACKAGE2
如您所见,my path变量包含MYPACKAGE1和MYPACKAGE2。
前者实际上只是一个文件夹,其中只有一个.py文件。后者遵循传统的包文件夹结构。在
有一件事需要注意,我的Python显然是空的
^{pr2}$
但是,如果在python中,我看看sys.path:>> import sys
>> sys.path
['',
'/Users/MYNAME/anaconda/bin',
'/Users/MYNAME/anaconda/lib/python36.zip',
'/Users/MYNAME/anaconda/lib/python3.6',
'/Users/MYNAME/anaconda/lib/python3.6/lib-dynload',
'/Users/MYNAME/anaconda/lib/python3.6/site-packages',
'/Users/MYNAME/Documents/Python_Programs/MYPACKAGE1',
'/Users/MYNAME/Documents/GitRepos/MYPACKAGE2',
'/Users/MYNAME/anaconda/lib/python3.6/site-packages/Sphinx-1.5.6-py3.6.egg',
'/Users/MYNAME/anaconda/lib/python3.6/site-packages/aeosa',
'/Users/MYNAME/anaconda/lib/python3.6/site-packages/IPython/extensions',
'/Users/MYNAME/.ipython']
很好,从两个包导入都没问题。在
所以我做了第三个包,它的结构和MYPACKAGE2相同MYPACKAGE3/
bin/
README.md
CHANGES.txt
setup.py
MANIFEST.IN
my_module/
__init__.py
sub_module1.py
sub_module2.py
添加到我的路径>> echo $PATH
/Users/MYNAME/google-cloud-sdk/bin:/Users/MYNAME/anaconda/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/Users/MYNAME/Documents/Python_Programs/MYPACKAGE1:/Users/MYNAME/Documents/GitRepos/MYPACKAGE2:/Users/MYNAME/Documents/GitRepos/MYPACKAGE3
但由于某些原因,我不能在python中导入它,它也不在我的系统路径(系统路径和以前完全一样)。在>> import my_module
ModuleNotFoundError: No module named 'my_module'
我不知道发生了什么变化。我错过了什么?在
提前谢谢。在