为什么我有一个未定义的bdir模块'错误,这是我的目录,
a.py
bdir-> bdir> module.py
在a.py
中 from bdir import *
答案 0 :(得分:1)
将<html>
<head>
<title>Bootstrap Grid</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<style type="text/css">
</style>
</head>
<body>
<div class="container">
<div id="Output"></div>
</div>
<script>
$(document).ready(function($) {
console.log('Document Ready');
renderData();
checkoutput();
});
function renderData() {
var obj = { 'players': [
{ 'fname': 'joe', 'lname': 'smith', 'number': '34' },
{ 'fname': 'jim', 'lname': 'jones', 'number': '12' },
{ 'fname': 'jack', 'lname': 'Hoff', 'number': '84' }
] };
var cols = GetHeaders(obj);
$('#Output').html(CreateTable(obj, cols));
}
function CreateTable(obj, cols) {
// below bootstrap table is not effective
var table = $('<table id="mytable" class="table table-bordered table-condensed table-striped table-hover"></table>');
console.log('what is there' +table.text());
var th = $('<tr></tr>');
for (var i = 0; i < cols.length; i++) {
th.append('<th>' + cols[i] + '</th>');
}
table.append(th);
for (var j = 0; j < obj.players.length; j++) {
var player = obj.players[j];
var tr = $('<tr></tr>');
for (var k = 0; k < cols.length; k++) {
var columnName = cols[k];
tr.append('<td>' + player[columnName] + '</td>');
}
table.append(tr);
}
return table;
}
function GetHeaders(obj) {
var cols = new Array();
var p = obj.players[0];
for (var key in p) {
cols.push(key);
}
return cols;
}
function checkoutput(){
console.log('what is in the html');
console.log($('#Output').html());
}
</script>
</body>
</html>
文件(甚至为空)放入bdir文件夹中。
答案 1 :(得分:1)
文件夹中没有__init__.py
文件的任何文件夹都不被视为模块。此外,如果您想从模块中import *
,请确保实际将所需内容导入__init__.py
,或声明__all__
列表。
此外,如果要进行 relative 导入,这意味着您要从模块当前所在的包中导入文件,则执行相对导入。所以,例如,如果你有:
bdir
- bdir
- __init__.py
- module.py
- a.py
要从bdir.module
导入任何内容,如果您在a.py
,则必须将其导入:
from .module import *
如果在bdir
模块之外,则:
from bdir.module import *
答案 2 :(得分:1)
您必须创建一个import
文件,这就是Python如何知道哪些文件夹是可以使用__init__.py
导入的软件包。这是documentation:
需要
__init__.py
个文件才能让Python对待 目录包含包;这是为了防止 无意中具有通用名称的目录,例如string 隐藏模块搜索后发生(更深)的有效模块 路径。在最简单的情况下,__all__
可以只是一个空文件,但是 它还可以执行包的初始化代码或设置RequestBody formBody = new FormBody.Builder() .add("key", "value") .build();
变量。