Python:os是NoneType

时间:2017-01-07 16:20:00

标签: python python-2.7

在以下一行

"AttributeError: 'NoneType' object has no attribute 'path'

我得到的追溯如下:

<module 'os' from '/usr/lib/python2.7/os.pyc'>
<module 'os' from '/usr/lib/python2.7/os.pyc'>
<module 'os' from '/usr/lib/python2.7/os.pyc'>
None
None
None
None
None
None
None

打印os:

def run_job_subtype(self):
        print os
        print sys.modules['os']

        if os.path.exists(self.abs_export_dir):
            return "incr"
        else:
            return "full"

突然间它被设置为无
我不认为我以编程方式设置为None ..
除了程序员之外,是否有可能将os设置为None? 或者除了手动查看数千行代码之外,还有什么方法可以调试它?

在线程

中调用此函数

另一个奇怪的事情......我已将代码更改为:

print sys.modules[\'os\']
', "AttributeError: 'NoneType' object has no attribute 'modules'

回溯

class TableViewController: UITableViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.estimatedRowHeight = 44
        tableView.rowHeight = UITableViewAutomaticDimension
    }
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "TFCell", for: indexPath) as! TFCell
        cell.textField.delegate = self
        return cell
    }
}

extension TableViewController: UITextFieldDelegate {
    func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
        performSegue(withIdentifier: "TFSegue", sender: textField)
        return false
    }
}

class TFCell: UITableViewCell {
    @IBOutlet weak var textField: UITextField!
}

我也在导入sys。我绝对不会为os和sys创建变量......

有什么东西在抹掉所有的进口产品?

1 个答案:

答案 0 :(得分:0)

错误确实是错误的 - 您设置了一个名为os的变量,因此在运行os.path.exists()时,您尝试在字符串上运行.path,整数,或其他一些变量。