无法在Python中导入模块

时间:2017-02-15 01:37:35

标签: python python-2.7 python-3.x

为什么我有一个未定义的bdir模块'错误,这是我的目录,

a.py

bdir-> bdir> module.py

在a.py

   from bdir import *  

3 个答案:

答案 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(); 变量。