我将与O'Riley Head First Python(第二版)课程一起关注。某一时刻,您将创建一个webapp并将其部署到pythonanywhere(第5章)。
Webapp使用从模块导入的两个功能,这些是先前创建的。
该模块称为vsearch.py。我还创建了一个readme.txt和setup.py,并使用setuptools使用:
创建源分发文件。python3 setup.py sdist
setup.py的代码如下:
from setuptools import setup
setup(
name = "vsearch",
version = "1.0",
description = "The Head First Python Seach Tools",
author = "HF Python 2e",
author_email = "[email protected]",
url = "headfirstlabs.com",
py_modules = ["vsearch"],
)
创建源分发文件而没有错误,并创建一个名为vsearch-1.0.tar.gz]的文件>
然后将该文件上传到pythonanywhere并通过控制台使用以下命令进行安装:python3 -m pip安装vsearch-1.0.tar.gz --user
控制台输出:
15:36 ~/mysite $ python3 -m pip install vsearch-1.0.tar.gz --user Looking in links: /usr/share/pip-wheels Processing ./vsearch-1.0.tar.gz Building wheels for collected packages: vsearch Running setup.py bdist_wheel for vsearch ... done Stored in directory: /home/Mohr/.cache/pip/wheels/85/fd/4e/5302d6f3b92e4057d341443ed5ef0402eb04994663282c12f7 Successfully built vsearch Installing collected packages: vsearch Found existing installation: vsearch 1.0 Uninstalling vsearch-1.0: Successfully uninstalled vsearch-1.0 Successfully installed vsearch-1.0
现在,当我尝试运行我的Web应用程序时,出现以下错误:
2020-03-24 16:18:14,592: Error running WSGI application 2020-03-24 16:18:14,592: ModuleNotFoundError: No module named 'vsearch' 2020-03-24 16:18:14,593: File "/var/www/mohr_eu_pythonanywhere_com_wsgi.py", line 16, in <module> 2020-03-24 16:18:14,593: from vsearch4web import app as application # noqa 2020-03-24 16:18:14,593: 2020-03-24 16:18:14,593: File "/home/Mohr/mysite/vsearch4web.py", line 3, in <module> 2020-03-24 16:18:14,593: from vsearch import search4letters
根据此错误,我认为找不到“ vsearch”,因为它已安装为“ vsearch-1.0”。但是,当我尝试将此行更改为:
from vsearch-1.0 import search4letters
我正确地收到了synthax错误,因为我无法以这种方式处理模块。那我该怎么办?在开始时创建模块时,我在setup.py文件中添加了版本号,因为根据讲座,这是一种好习惯。然后,Setuptools会自动创建以“ -1.0”结尾的源分发文件。同样,当使用上面显示的命令导入它时,我会自动将importet取为“ vsearch-1.0”,由于合成语法错误,我无法在我的python代码中进行引用。
我做错什么了吗?有没有办法在另一个名称空间下导入它?有没有一种方法可以在我的python代码中引用“ vsearch-1.0”而不会出现synthax错误?
我将与O'Riley Head First Python(第二版)课程一起关注。某一时刻,您将创建一个Web应用程序并将其部署到pythonanywhere(第5章)。该webapp使用两个函数,导入的...
pip install --user
(强调了[[--user
python3
版本。当您使用python3 -m pip
或pip3
安装某些软件时,您使用的默认python3可能与您的Web应用程序的python版本设置不匹配。确保python3.7
安装使用pip3.7
和python3.6
或pip3.6
和--user
等。