返回顶部
首页 > 资讯 > 后端开发 > Python >怎么正确设置Python项目的入口文件
  • 215
分享到

怎么正确设置Python项目的入口文件

2023-06-15 17:06:11 215人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“怎么正确设置python项目的入口文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!有一位同学提到了 Python 找不到模

本篇内容介绍了“怎么正确设置python项目的入口文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

有一位同学提到了 Python 找不到模块的问题:

怎么正确设置Python项目的入口文件

问题涉及到的代码结构和代码截图如下:

怎么正确设置Python项目的入口文件

这个问题的解决方法非常简单,就是把start.py文件从bin文件夹移出来就好了。

但如果对这个问题进一步分析,可以看到更多问题。

在我以前的文章:为什么Python代码能运行但是PyCharm给我画红线?中,我讲到了工作区(Workdir)对代码的影响。PyCharm、vscode  识别的工作区,可能并不等于你直接在终端窗口运行.py文件时候的工作区。

今天这个问题本质上也是工作区导致的问题。这个同学的项目根目录是MY_api,所以他使用的编辑器VSCode  就会默认把MY_API当做工作区。所以,当他在start.py文件中写上from lib.interface import server时,VScode  并不会给他标记红色波浪线。因为从 VSCode 的视角看,lib文件夹确实就是在工作区下面的。

但是,当他在 VSCode 里面运行这个start.py文件时,Python 是从bin文件夹下面运行的。此时,Python  会把bin文件夹当做工作区。在工作区里面就只有这一个start.py文件,所以当然找不到lib文件夹。

如果仅仅从技术上来说,你非要导入 bin  文件夹的父文件夹下面的其他模块,也并不困难,我在一日一技:导入父文件夹中的模块并读取当前文件夹内的资源一文中讲到了具体的做法。

但问题在于,你不应该这样做。你不应该把项目的入口文件,放到项目内部很深的文件夹中。

所谓入口文件,就是要首先经过它,才能到达其他的文件。当你拿到一个 Python  项目,你只需要首先从入口文件开始阅读代码,根据入口文件调用的模块,一路看下去,你就能读到它的所有实现逻辑。

但如果大家经常逛 GitHub,就会发现,有些人可能是被其他垃圾语言污染了思想,他的 Python  项目,根目录有五六个文件夹和七八个.py文件。你拿到这个项目的时候,你甚至不知道,当你想运行这个代码的时候,python3  xxx.py应该运行哪个文件。你多方打听,或者看了半天文档,才知道,哦,原来入口文件在com/xx/yy/zz/script/run.py。

当你打开这个run.py文件,你发现它的顶部,文件导入的代码写的是from ../../../../aaa import bbb。

简直是神经病写法。我知道有些垃圾语言流行这样写。但现在你用的是 Python,学聪明一点,别那样写。

对于一个 Python 项目来说,入口文件应该始终在最外层。例如:

怎么正确设置Python项目的入口文件

当你要启动这个项目的时候,直接在最外层python3  main.py,就能把它启动起来。在main.py里面,你可以导入其他模块,然后调用其他模块里面的类或者函数。

这样做的好处是什么?这样做,你是在项目的根目录启动的这个项目,所以你的工作区就是项目的根目录。那么你在任何一个.py文件里面都可以很容易地基于工作区导入任意其他文件。例如,你现在在models/monGo-util/mongob_helper.py文件中,你想导入utils/abc.py中的time_fORMat()函数,那么,你只需要这样写就可以了。

from utils.abc import time_format

你根本不可能出现需要导入父文件夹中的某个模块的情况。

只有工具脚本,才需要单独使用一个文件夹来存放,然后调用父文件夹中的其他文件。例如,我现在有一个工具脚本,它每天晚上0点会读写  MongoDB,清理无效数据,那么此时,我可以在根目录单独创建一个script或tools或者bin文件夹,然后把工具脚本放进去,例如:

怎么正确设置Python项目的入口文件

在这个工具脚本里面,你可能会调用models/mongo-util/mongob_helper.py文件中的某个函数。这种情况下,你调用父文件夹中的内容是可以接受的。但这毕竟只是工具脚本。

可能还有同学要问,那如果我的项目是一个 Python  的包,它本身没有入口文件怎么办呢?这个时候,你可以把这个包的__init__.py当做它的入口文件。大家可以参考我在 gitHub -  kingname/GeneralNewsExtractor: 新闻网页正文通用抽取器 Beta  版.[1]的代码组织结构。在项目根目录留下一个example.py文件,用来演示如何调用这个包。而这个包本身的代码,是在一个叫做gne的文件夹中的。这个gne文件夹是一个包,它的入口文件在__init__.py中。

各位,当你写代码的时候,你先想一想,如果别人拿到了你的代码,想要梳理一下这个项目的逻辑,在不询问你的情况下,怎么让他知道应该从哪个文件开始读?应该按什么顺序读?他能不能轻易地看到数据在你的代码中是怎么运转的?

“怎么正确设置Python项目的入口文件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么正确设置Python项目的入口文件

本文链接: https://lsjlt.com/news/281038.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么正确设置Python项目的入口文件
    本篇内容介绍了“怎么正确设置Python项目的入口文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!有一位同学提到了 Python 找不到模...
    99+
    2023-06-15
  • Django项目怎么正确配置日志
    这篇文章将为大家详细讲解有关Django项目怎么正确配置日志,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。当Django项目正式部署上线后,我们需要设置DEBUG = False。这时开发者应怎样检查Dj...
    99+
    2023-06-14
  • 怎么在python中利用Package设置文件入口
    本篇文章给大家分享的是有关怎么在python中利用Package设置文件入口,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Python主要用来做什么Python主要应用于:1、...
    99+
    2023-06-14
  • 怎么正确认识Python源文件
    今天就跟大家聊聊有关怎么正确认识Python 源文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。使用Python 源文件在构建脚本的底部,可以定义 compile 目标,Pytho...
    99+
    2023-06-17
  • 怎么加入ADO.NET文件项目
    这篇文章主要讲解了“怎么加入ADO.NET文件项目”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么加入ADO.NET文件项目”吧!这三个存储过程需要同时映射到实体类上,也就是说如果你为一个...
    99+
    2023-06-17
  • python设置 matplotlib 正确显示中文的四种方式
    一、前言 啪地一下点进来,很快呀~~ matplotlib是 Python 优秀的数据可视化第三方库,matplotlib是基于 numpy 的一套 Python 工具包。这个包提供了丰富的数据绘图工具,主要用于绘...
    99+
    2022-06-02
    python matplotlib matplotlib设置中文 matplotlib正确显示中文
  • webpack中怎么配置文件入口和文件出口
    今天小编给大家分享一下webpack中怎么配置文件入口和文件出口的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我...
    99+
    2024-04-02
  • pycharm怎么把文件导入到项目
    您可以在 pycharm 中通过以下方式导入文件:1. 使用“file”菜单;2. 拖放文件;3. 使用“project”工具窗口;4. 使用“ctrl”+“alt”+“shift”+“...
    99+
    2024-04-25
    linux python pycharm
  • Django怎么管理项目的配置文件
    在Django中,项目的配置文件通常是settings.py文件,它位于项目的根目录下。settings.py文件包含了项目的各种配...
    99+
    2024-03-05
    Django
  • Spring Boot怎么正确读取配置文件属性
    这篇“Spring Boot怎么正确读取配置文件属性”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring&n...
    99+
    2023-06-30
  • vue项目怎么配置sass及引入外部scss文件
    这篇文章主要介绍了vue项目怎么配置sass及引入外部scss文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue项目怎么配置sass及引入外部scss文件文章都会有所收获,下面我们一起来看看吧。配置sas...
    99+
    2023-06-30
  • PHP shell 接口路径的正确设置方法是什么?
    PHP是一种广泛使用的服务器端脚本语言,可以用于创建动态网站和Web应用程序。PHP shell是一种PHP程序,可以通过命令行界面或Web界面与服务器交互。在使用PHP shell时,正确设置接口路径是非常重要的,因为它可以确保PHP s...
    99+
    2023-10-06
    shell 接口 path
  • css怎么正确设置兼容浏览器的中文字体
    这篇文章将为大家详细讲解有关css怎么正确设置兼容浏览器的中文字体,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 高版本IE阅读器(比如IE9)和有的操作系统对CSS设...
    99+
    2024-04-02
  • 项目部署云服务器怎么设置端口
    8080端口:8080端口是阿里云云服务器上提供的一个默认端口号,用于连接到服务器。在服务器上启用这个端口可以与外界进行通信,同时也可以监听某个特定的端口,以便及时发现并屏蔽潜在的攻击。因此,在服务器上开启8080端口可以确保数据的安全性...
    99+
    2023-10-28
    端口 服务器 项目
  • jquery怎么在IE8中正确设置text的值
    这篇文章主要介绍“jquery怎么在IE8中正确设置text的值”,在日常操作中,相信很多人在jquery怎么在IE8中正确设置text的值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jquery怎么在IE...
    99+
    2023-07-06
  • python怎么引入同一目录的文件
    在Python中,要引入同一目录的文件,可以使用以下两种方法:1. 使用相对路径引入文件:```pythonfrom .filena...
    99+
    2023-09-23
    python
  • 怎么将so文件导入到Android Studio项目
    今天就跟大家聊聊有关怎么将so文件导入到Android Studio项目,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。采用最简单直接的方式导入s0文件:在app下新建jniLibs/...
    99+
    2023-05-30
    android so文件
  • eclipse无法导入项目文件怎么解决
    如果Eclipse无法导入项目文件,您可以尝试以下方法来解决问题: 检查项目文件是否完整:确保项目文件夹中包含了所有必要的文件和...
    99+
    2024-04-02
  • html中怎么正确设置兼容浏览器的中文字体
    这篇文章主要介绍了html中怎么正确设置兼容浏览器的中文字体,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 高版本IE浏览器(比如IE9)...
    99+
    2024-04-02
  • pycharm怎么更新项目文件_pycharm更新项目文件的方法
    首先,进行打开一个的pycharm的当前中,进行选中一个项目文件。 然后进行点击了的菜单中的 vcs的菜单之后。 点击了vcs的菜单之后,弹出了下一级菜单选中为 update pro...
    99+
    2024-05-10
    pycharm
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作