ImportError:无法从“ mymodule”导入名称“ mylist”

时间:2019-12-30 02:51:01

标签: python module multiprocessing

我一直在努力解决我的多处理脚本问题,我终于认为经过大约8个小时的尝试和失败,我终于找到了答案。我想导入一个包含相同目录中的列表的脚本。在我的主文件中,有2个函数:第一个是我的multiprocessing函数,第二个是main。另一个文件中的列表是我的多处理Pool的迭代器,但是由于某种原因,它表示无法在我的模块中找到我的列表。

我的主文件有:

import mymodulename
import multiprocessing
def multiprocessingfunction(iteratornotactuallythename):
    #my code here
def main():
    pool = Pool(5)
    results = pool.map(multiprocessingfunction, mylist#the one that python cant seem to find)

我尝试将其导入为*,像这样导入单个列表:from mymodulename import mylist 而且我也尝试过这样导入它:import mymodulename。 当我尝试导入单个名称时,出现以下错误:

ImportError: cannot import name _mylist_ from mymodulename

当我尝试正常导入或使用*导入时,出现此错误:

"AttributeError: 'function' object has no attribute mylist

我所有的文件都在同一目录中

我的模块文件具有:

def starting():
    mylist = [contentsoffile]

刚刚尝试的回溯是:

  File "E:\a\nonargparseversion.py", line 16, in <module>
    from mymodule import arrang
ImportError: cannot import name 'arrang' from 'mymodule'

2 个答案:

答案 0 :(得分:2)

myliststarting()函数的局部变量,这意味着导入后它对其他模块不可见,可以将其放在全局范围内(与def starting()相同的缩进)或放置{{ return mylist末尾的1}},而将starting()的返回值用作starting()

答案 1 :(得分:0)

情况1:

const fs = require("fs");
const filePath = `./components/backups/${fileName}`;
const openJsonFile = fileName => {

  fs.stat(fileLocation, function(err, stat) {

    let data = [];
    if (err == null) {

      fs.readFile(fileLocation, function(err, data) {
        return await JSON.parse(data);
      });
    } else if (err.code === "ENOENT") {
      // file does not exist
      console.log("file does not exist");
    } else {
      console.log("Some other error: ", err.code);
    }
    console.log("data", data);

    return data;
  });
};

情况2:

import mymodulename
import multiprocessing
def multiprocessingfunction(iteratornotactuallythename):
    #my code here
def main():
    pool = Pool(5)
    results = pool.map(multiprocessingfunction, mymodulename.mylist)

如果出现错误,则应发布错误回溯信息。不只是一个句子。