我分叉了很好的模块multiscorer,我试图把它变成一个我可以安装在不同环境中的软件包。
我的叉子可以找到here。我采取的步骤是
python setup.py install
ipython
并尝试from multiscorer import MultiScorer
我收到以下错误ImportError: cannot import name 'MultiScorer'
。但请注意,import multiscorer
工作得很好。我需要更改代码才能使用python setup.py install
启用安装?
另一次尝试:我尝试将packages=['multiscorer']
替换为py_modules=['multiscorer.multiscorer']
。没有帮助......
答案 0 :(得分:2)
您的setup.py
没问题。问题是包结构。现在,导入Multiscorer
类的正确方法是:from multiscorer.multiscorer import Multiscorer
。第一个multiscorer
用于同名的文件夹(包),第二个multiscorer
用于包内的multiscorer.py
模块。
The docs建议将所有代码放在__init__.py
内以获取此类小包。
如果您的代码库后来对于一个文件而言变得太大,您可以开始引入其他模块并使用__init__.py
在包级别上公开类/函数。
希望这有帮助。
答案 1 :(得分:0)
事实证明我试图导入错误的东西。以下内容:.table{width: 100%;
border: 1px solid #333;
display: table;
position:relative;
}
.table .row{
clear: both;
position: relative;
}
.table .row + .row{
border-top: 1px solid #333;
}
.table .col{
display: inline-block;
float: left;
}
.table .col + .col{
border-left: 1px solid #333;
}
.col.col25{
width: calc( 25% - 1px ); /*-1 for the border between cell, in this example */
background-color: yellow;
}
.col.col50{
width: calc( 50% - 1px ); /*-1 for the border between cell, in this example */
background-color: red;
}
.col.col75{
width: calc( 75% - 1px ); /*-1 for the border between cell, in this example */
background-color: yellow;
}
有效。
我现在想知道这是 pythonic 方式。