我似乎无法从父目录导入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
抓取内容?
答案 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'