python項目目錄結構
1. 求python系統化的學習目錄
一、基礎階段。1、linux基本命令 2、Python語法基礎 3、Python字元串解析 4、Python時間和日歷 5、Python文件操作 6、Python面向對象 7、設計模式 8、異常 9、模塊 10、項目實戰:飛機大戰二、高級階段Python高級編程Linux系統編程
Linux網路編程
正則表達式
案例:web伺服器實現
數據結構與演算法
2. python怎樣爬取網站目錄結構
抓取每一頁的所有a標簽,採集所有href屬性,分離域名,把此網站域名下的地址標記為採集入庫條件,然後計算第一次採集到的地址的hash,如果hash重復,則不入庫,否則入庫再迭代二次採集,直到所有href的hash都復為結束條件,程序則認為資料庫中已採集到此域下的所有地址,即可以開始抓站
3. 如何在伺服器上部署python
使用pip或easy_install可以管理和安裝python的package包,實際上它們都是從pypi伺服器中搜索和下載package的。目前在pypi伺服器上,有超過三萬多個package,同時還允許我們將自己的代碼也上傳發布到伺服器上。這樣,世界上的所有人都能使用pip或easy_install來下載使用我們的代碼了。
具體步驟如下:
首先創建項目文件和setup文件。
目錄文件結構如下:
project/
simpletest/
__init__.py
test.py
setup.py
假設項目文件只有一個simpletest包,裡面有一個test.py文件。
創建的setup.py文件格式大致如下,其中,install_requires欄位可以列出依賴的包信息,用戶使用pip或easy_install安裝時會自動下載依賴的包。詳細的格式參考文檔。
from setuptools import setup, find_packages
setup(
name = 'simpletest',
version = '0.0.1',
keywords = ('simple', 'test'),
description = 'just a simple test',
license = 'MIT License',
install_requires = ['simplejson>=1.1'],
author = 'yjx',
author_email = '[email protected]',
packages = find_packages(),
platforms = 'any',
)
然後將代碼打包。
打包只需要執行python
setup.py xxx命令即可,其中xxx是打包格式的選項,如下:
# 以下所有生成文件將在當前路徑下 dist 目錄中
python setup.py bdist_egg # 生成easy_install支持的格式
python setup.py sdist # 生成pip支持的格式,下文以此為例
發布到pypi。
發布到pypi首先需要注冊一個賬號,然後進行如下兩步:
注冊package。輸入python setup.py register。
上傳文件。輸入python setup.py sdist upload。
安裝測試
上傳成功後,就可以使用pip來下載安裝了。
另外,pypi還有一個測試伺服器,可以在這個測試伺服器上做測試,測試的時候需要給命令指定額外的"-r"或"-i"選項,如python
setup.py register -r "",python
setup.py sdist upload -r "",pip
install -i "" simpletest。
發布到測試伺服器的時候,建議在linux或cygwin中發布,如果是在windows中,參考文檔,需要生成.pypirc文件
4. python中setup.py和_init_.py的作用
_init_.py,是要想讓一個文件夾成為包的必須的文件!這個文件可以為空,但是必須得有!
setup.py,是用來安裝模塊用的,dos命令下!
5. Python 蛋疼的單元測試,有什麼好的目錄結構
根目錄下建立一個 tests
然後按照 test_UNIT.py 這種格式來命名,如果代碼量較多則根據功能建立些子文件夾來分分類,就好了
可以參考 requests, django 的源碼來看
6. python 創建骨架目錄結構的命令在哪裡輸入,怎麼輸入
你問的這些在python命令行中都無法實現 python命令行只是一個python命令執行環境,和linux命令行完全不一樣
7. 包含多個文件夾的Python項目打包為可執行文件exe
block_cipher = None
a = Analysis(['main.py', 'monitor.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\caption_recognizer.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\image_recognizer.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\image_vectorizer.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\network2.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\test_fun.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\unicom_area.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\unicom_area_finder.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\unicom_area_include_caption_judger.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\value_vectorizer.py'],
pathex=['E:\\py_project\\test_wpf_python_msg'],
binaries=[],
datas=[('E:\\py_project\\test_wpf_python_msg\\images', 'images'),
('E:\\py_project\\test_wpf_python_msg\\network_parameters', 'network_parameters')],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='main',
debug=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='main')
(1)第一個列表中寫所有的py文件,與main一個文件夾的可以直接寫文件名,不一個文件夾的需要寫完整的文件路徑。
我曾試過在pathex中加入其他文件的路徑,然後其他py文件不寫完整路徑,只寫文件名,但是失敗了。
(2)datas是中的元素是tuple類型,tuple的第一個參數是python項目中data文件(非py文件)的路徑,
第二個參數是data在exe中保存此資源的文件夾名,要和項目中的文件夾名相同
(3)最重要: 因為編譯成exe之後的main.exe是在最外層的文件夾的。因為main.py是入口文件,所以被調用的其他py文件的當前路徑都是main.py文件的當前路徑。所以在源代碼中就一定要把main.py放到最外層的項目文件夾中,這樣main.py的當前路徑才能和main.exe的路徑保持一致,才能讓其他的py文件的當前路徑不變,他們才可以找到data資源。
4.用之前配置的spec文件製作exe: pyinstaller -d main.spec
使用-d製作出來的exe比使用-f的快很多,因為-f把所有dll文件都打包到一個exe中了。
5.生成的exe在dist文件夾中
8. 如何設計結構清晰的 Python 工程目錄結構
1. 使用專業的項目構建發布工具來構建項目目錄. 如 buildout . 其目錄結構絕對比自己創建來的漂亮.
2. log目錄最好不要放到項目里
3. 缺少 setup.py
4. 缺少 requirements.txt