解决python3在项目目录下找不到包(No module named 'views')

解决python3在项目目录下找不到包(No module named 'views'),第1张

一、首先看看目录的结构:

二、我在searchpy中导入views包下的productionpy和searchpy,运行searchpy的时候直接报错找不到views包,其实问题就在于包的搜索路径,因为是在flaskr这个目录下运行的,打印出来的包搜索路径为(['/project/my_flask_project/flaskr', '/usr/local/python3/lib/python36zip', '/usr/local/python3/lib/python36', '/usr/local/python3/lib/python36/lib-dynload', '/usr/local/python3/lib/python36/site-packages']),解释器会把/project/my_flask_project/flaskr加入导搜索路径,自然导包的时候,也会在这个路径下搜索,找不到就报错。

三、所以,知道问题所在了,只需要把这个项目的路径加入到搜索路径即可

syspathappend(ospathabspath('')) 

这个 *** 作是把当前目录的上一级目录添加到包搜索路径中,这样问题就解决了

Copyright © 1999-2020, CSDNNET, All Rights Reserved

python

打开APP

pergoods

关注

Python多线程爬取网站image的src属性实例 原创

2017-05-16 11:18:51

pergoods

码龄6年

关注

# coding=utf-8

'''

Created on 2017年5月16日

@author: chenkai

Python多线程爬取某单无聊图地址(requests+BeautifulSoup+threading+Queue模块)

'''

import requests

from bs4 import BeautifulSoup

import threading

import Queue

import time

class Spider_Test(threadingThread):

def __init__(self,queue):

threadingThread__init__(self)

self__queue = queue

def run(self):

while not self__queueempty():

page_url=self__queueget() [color=red]#从队列中取出url[/color]

print page_url

selfspider(page_url)

def spider(self,url):

r=requestsget(url) [color=red]#请求url[/color]

soup=BeautifulSoup(rcontent,'lxml') [color=red]#rcontent就是响应内容,转换为lxml的bs对象[/color]

imgs = soupfind_all(name='img',attrs={}) #查找所有的img标签,并获取标签属性值(为列表类型)

for img in imgs:

if 'onload' in str(img): [color=red]#img属性集合中包含onload属性的为动态图gif,[/color]

print '>

py文件,文件存在E盘下的LearnPython文件夹里面。

Python可应用于多平台包括Linux和MacOSX。您需要下载适用于您使用平台的二进制代码,然后安装Python。如果您平台的二进制代码是不可用的,你需要使用C编译器手动编译源代码。编译的源代码,功能上有更多的选择性,为python安装提供了更多的灵活性。

运行方法:

1我的python文件夹在d盘,python_work文件夹保存在python文件夹中

2先''d:''转到d盘,再cd转换路径到python_work

3此时显示目标路径,再dir浏览文件夹下各项目

4手打其中的helloworldpy文件名可运行

1win10 下 win + r 打开cmd 切换新项目的目录

2新建scrapy项目的命令:

可以利用pycharm 打开项目文件夹编辑项目

3itemspy

声明爬取的字段

4新建scrapy 爬虫

用命令 scrapy genspider doubanmovie "moviedoubancom" 创建爬虫。

5运行爬虫

51 创建运行脚本

(一)、在 scrapycfg 同级目录下创建 pycharm 调试脚本 runpy,避免每次运行爬虫输入密码,内容如下:

6修改robottxt协议

修改 settings 中的 ROBOTSTXT_OBEY = True 参数为 False,因为默认为 True,就是要遵守 robotstxt 的规则, robotstxt 是遵循 Robot协议 的一个文件,它保存在网站的服务器中,它的作用是,告诉搜索引擎爬虫,本网站哪些目录下的网页不希望你进行爬取收录。在 Scrapy 启动后,会在第一时间访问网站的 robotstxt 文件,然后决定该网站的爬取范围。查看 robotstxt 可以直接网址后接 robotstxt 即可。

一般构建爬虫系统,建议自己编写Item Pipeline,就可以在open(path)选择自己的保存路径

参考: # scrapy爬虫事件以及数据保存为txt,json,mysql

71保存为json格式时出现乱码的解决方式:

scrapy抓取豆瓣书籍保存json文件乱码问题

中文默认是Unicode,如:

\u5317\u4eac\u5927\u5b66

在setting文件settingspy中设置:

就可以解决了

第二种解决办法

或在cmd中传入 -s FEED_EXPORT_ENCODING='utf-8'

参考: >

在PyCharm中,可以使用以下路径来访问shell:

1 打开PyCharm,进入菜单栏的"File",选择"Settings"。

2 在左边的面板中,选择"Project",然后选择"Project Interpreter"。

3 在右边的面板中,选择你想要设置的Python解释器,然后点击下方的"Show All"按钮。

4 找到"Interpreter Paths"选项,点击旁边的"+"按钮。

5 在d出的对话框中,输入你想要使用的shell路径,并点击"OK"。

6 点击"Apply"和"OK"按钮保存更改。

在设置完成后,你可以使用PyCharm的Terminal功能来访问shell。打开Terminal的方法是在菜单栏中选择"View",然后选择"Tool Windows",然后选择"Terminal"。

Python

会自动从

syspath

路径列表里的所有路径里寻找你要

import

的模块,这个路径列表可以通过在终端里输入以下命令查看:

import

sys

syspath

如果要调用其他路径的文件,可以先在上述列表中加入新的路径,以你提到的情况为例:

import

sys

syspathinsert(0,

'/')

import

test

一般一个项目的所有文件应该在同一个项目文件夹中吧,此时有其他解决办法比如在项目的下级目录里放置

__init__py

文件,然后用

from

文件夹

import

文件名

的方式来引入模块。其实我是菜鸟,等高手修正。

1python文件保存之后默认的文件类型都是py,而py文件直接双击去点它的话是不能够将其打开的,而是会出现提示找不到可以打开这个文件的应用程序。

这是因为python在安装之后虽然会带一个默认的编辑器IDLE以及解释器pythonexe,但是这两个程序都不是python文件的默认打开方式和执行方式。

2所以要打开保存后的python文件的话有两种方式,第一种就是右键它然后选择打开方式,在打开方式里面选择记事本这个应用程序将其打开就行,因为python文件实际上也是一个文本类型文件。如果不用记事本的话就需要点击其他程序,然后找到pycharm或者是IDLE之类的python编辑器来将其打开了。

第二种方式的话就是将py后缀改成pyw后缀,这样它就会被视为经过编译后的python文件,双击的话会直接调用默认文本编辑器打开它

3如果是要打开python文件并且运行的话也有几种方式,打开python编辑器然后将python文件拖进去就能自动将其打开,然后按下shift+F10快捷键就能运行python文件了。

相对路径是相对脚本文件来的。

比如脚本在C:/python目录下,相同目录下有一个文件叫testtxt

那么绝对路径就是 C:/python/testtxt,相对路径就是testtxt

使用脚本 open('C:/python/testtxt','r') 和 open('testtxt','r')效果都是一样的

我们可以多做几次试验,把”Exampleclass”移动到不同路径下,同时在那些路径下,执行”java Example”命令启动jvm,我们会发现这个”当前用户目录”是不断变化的,它的路径始终和我们在哪启动jvm的路径是一致的

搞清了这些,我们可以使用相对路径来创建文件,例如:

File file = new File(“atxt”);

FilecreateNewFile();

假设jvm是在”D:\”下启动的,那么atxt就会生成在D:\atxt;

此外,这个参数还可以使用一些常用的路径表示方法,例如””或”\”代表当前目录,这个目录也就是jvm启动路径所以如下代码能得到当前目录完整路径:

File f = new File(“”);

String absolutePath = fgetAbsolutePath();

Systemoutprintln(absolutePath);//D:\

最后要说说在eclipse中的情况:

Eclipse中启动jvm都是在项目根路径上启动的比如有个项目名为blog,其完整路径为:D:\work\IDE\workspace\blog那么这个路径就是jvm的启动路径了所以以上代码如果在eclipse里运行,则输出结果为” D:\work\IDE\workspace\blog”

以上就是关于解决python3在项目目录下找不到包(No module named 'views')全部的内容,包括:解决python3在项目目录下找不到包(No module named 'views')、python如何才能获取src地址、D:\PYTHON\DATA\EXERCISE\HOME.PY是什么路径文件名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9745018.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存