我的PyCharm项目以这种方式构建:
MyPrj
|_ src
|_ main.py
MyPackage
|_ src
| |_ MyPackage
| |_ __init__.py
| |_ MyModule.py
|_ setup.py
在main.py
我添加了这一行:from MyPackage import MyModule
。
我使用anaconda3(~/anaconda3/bin/pip install .
)成功安装了这个模块。在遇到MyPackage
未找到的事实之后遇到了一些问题,我重新安装了anaconda3,代码终于正常工作。
现在我已在MySub.py
中添加了另一个模块MyPackage/src/MyPackage
,然后我已将其导入MyModule.py
(from MySub import sub
,其中sub
是正确定义的类在MySub.py
)。在anaconda3中升级我的软件包之后,当我尝试运行main.py
时,我收到以下错误:ImportError: No module named 'sub1'
,但是如果我查看anaconda3的site-packages
文件夹MySub.py
是当下。如何解决这个问题?
这是我的setup.py
文件:
import os
from setuptools import setup
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()
setup(
name='MyPackage',
version='0.1',
description='my description',
long_description=read('README.txt'),
packages=['MyPackage'],
package_dir={'MyPackage': 'src/MyPackage'},
zip_safe=False
)
我的__init__.py
文件为空。
答案 0 :(得分:1)
变化:
from datetime import datetime
dt = datetime.strptime('2016-06-01 1:33:45', '%Y-%m-%d %H:%M:%S')
dt.strftime('%a %b %d %H:%M:%S %Y ')
>>> 'Wed Jun 01 01:33:45 2016'
为:
from MyPackage import module.py
from MyPackage import module
是Python模块的名称; module
是文件本身的名称,不允许在import语句中使用。事实上,当您执行module.py
时,Python导入系统将在import module.py
中的名为py
中查找对象,这不太可能是您真正想要的。有关详细信息,请参阅this和this。