python:pycharm:突然之间引用同一个目录下的其他模块不出现代码提示的问题解决方法

简介: python:pycharm:突然之间引用同一个目录下的其他模块不出现代码提示的问题解决方法

a8dba2e16a9fd7a1445f51e122ee1147951bc1b1

同时,在主调模块中输入import进来的模块的名字,不会出现代码提示.......


居然没有代码提示19.gif


这是怎么个鬼情况呢???


改一改:


26487bbe8a61613e200b3f3555c5a8c6a340b6d1

路径写全,问题解决了.


然而这仅仅是一种解决方案.


另外一种解决方案是这样的:

925a504c3ed874973956c563d55c687a3ced8c46

把这个包含文件的目录设置成Sources Root

pycharm就会索引里面的*.py文件了.....


然而有一个问题:


假如说我的工程里面有两个文件夹,都设置成了sources root,会发生什么情况呢??

d07676e63e5a80d33bb7e150d911d1e72f03b13b


我们可以看到,这个test.py把database文件夹下的模块classuser给引入进来了28.gif


---------------------------分割线------------------------------------------


那么,如果我们的程序脱离了pycharm之后会发生什么情况呢?


我们去这个项目的文件夹开一个终端命令行窗口,然后python一下test.py


5d4cdf0b1b893727c3312388ac9145ba3c8a80b2

果然,上下文依赖出现问题了.


解决的方法是: 把你的主程序文件放在一个文件夹里面去,然后它所有调用的模块都放在这个文件夹,或者这个文件夹的子文件夹里面去:


116b49e9adaee6f1074156c8aeb458b21692ac26


这样子,既可以在pycharm里面运行这个程序,也可以单独的使用命令行运行这个程序..


6140236ed4c12dcb0b9d7fee5c85619a6e6a45bf

那么我想,在pycharm里面为了避免出现这种虚拟环境造成路径问题,可以考虑什么样的代码风格呢?


建议把你程序的主入口模块放在一个文件夹A中,所有他要调用的模块放在A的子文件夹里面,然后在写代码的时候,将模块的调用,写成:


子文件夹.模块名


的形式.这样你既能使用pycharm的各种提示功能,也能保证程序迁移到系统命令行环境后的运行.


欢迎拍砖讨论....

另外:使用pycharm,官方推荐的编码规范是 PEP8:

https://www.python.org/dev/peps/pep-0008/#imports

点这个链接,就可以看到pep8 对import的建议:


其中有一句:

330557d2e8b7e62322e409b3f816ff60982fbf10

所以,还是来整理一下你的文件结构,然后用绝对路径吧22.gif

目录
相关文章
|
4天前
|
Java UED Python
【10月更文挑战第4天】「Mac上学Python 4」入门篇4 - PyCharm高效开发环境配置与使用技巧
本篇将详细介绍如何高效地使用PyCharm进行Python开发,内容涵盖PyCharm的主题设置、字体调整、常用快捷键、虚拟环境的管理、库安装与调试技巧等。通过本篇的学习,用户将能够充分利用PyCharm的功能,提升Python开发效率。
103 2
【10月更文挑战第4天】「Mac上学Python 4」入门篇4 - PyCharm高效开发环境配置与使用技巧
|
8天前
|
安全 Linux 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
38 2
|
8天前
|
Python Windows 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
30 2
|
8天前
|
Python
Datetime模块应用:Python计算上周周几对应的日期
Datetime模块应用:Python计算上周周几对应的日期
34 1
|
1天前
|
Python
Python实用记录(四):os模块-去后缀或者改后缀/指定目录下图片或者子目录图片写入txt/csv
本文介绍了如何使用Python的os模块来操作文件,包括更改文件后缀、分割文件路径和后缀、将指定目录下的所有图片写入txt文档,以及将指定目录下所有子目录中的图片写入csv文档,并为每个子目录分配一个标签。
6 1
|
6天前
|
JSON Java Linux
python有用的模块
python有用的模块
|
5天前
|
编解码 UED Python
Python批量修改指定目录下图片的大小名文章
Python批量修改指定目录下图片的大小名文章
9 1
|
8天前
|
安全 测试技术 数据库
Python编程--sys模块及OS模块简单用例
Python编程--sys模块及OS模块简单用例
10 1
|
8天前
|
JSON 数据格式 Python
Python编程:利用JSON模块编程验证用户
Python编程:利用JSON模块编程验证用户
13 1
|
9天前
|
网络安全 开发工具 iOS开发
macOS 系统安装Python-nmap模块
macOS 系统安装Python-nmap模块
18 2