无法从父目录导入文件

时间:2020-09-12 23:55:27

标签: python

我似乎无法从父目录导入python文件。我在bash中运行了以下命令:

import requests
from bs4 import BeautifulSoup
from string import ascii_uppercase
import pandas as pd


goals = list(ascii_uppercase)


def main(url):
    with requests.Session() as req:
        allin = []
        for goal in goals:
            r = req.get(url.format(goal))
            df = pd.read_html(r.content, header=1)[-1]
            target = df['Symbol'].tolist()
            allin.extend(target)
    print(allin)


main("https://www.advfn.com/nyse/newyorkstockexchange.asp?companies={}")

但这给了我错误:

echo 'token="AAA111"' > config.py
mkdir scenarios
echo $'from .. import config\nprint(config.token)' > scenarios/test.py
python3 scenarios/test.py

我做错了什么?如何获得Traceback (most recent call last): File "scenarios/test.py", line 1, in <module> from .. import config ValueError: attempted relative import beyond top-level package 来从scenarios/test.py抓取内容?

1 个答案:

答案 0 :(得分:1)

相对导入(点)是指package中的位置,不一定是任何目录。 *)

如果要从父目录导入模块,则需要将其添加到模块搜索路径,例如:

...
echo $'import config\nprint(config.token)' > scenarios/test.py
PYTHONPATH=. python3 scenarios/test.py

*)如果您拥有以下树:

.
└── mypkg
    ├── __init__.py
    ├── config.py
    └── scenarios
        ├── __init__.py
        └── test.py

在您的示例中使用from .. import config中的mypkg/scenarios/test.py,则该方法就可以了(从mypkg/上方的父级调用):

python3 -c 'import mypkg.scenarios.test'