


Adakah saya perlu menambah kebenaran boleh laku semasa menjalankan skrip Python?
Analisis Kes
Masalah ini agak bertentangan dengan intuitif untuk diterangkan. Bukankah kebenaran boleh laku diperlukan untuk melaksanakan fail? Mari kita lihat contoh dahulu:
# module1.py def test(): print ('hello world!') if __name__ == '__main__': test()
Ini ialah fail bernama module1.py Fail ini hanya mempunyai kebenaran baca:
[dechin@dechin- manjaro excute] $ ll
-r--r--r-- 1 dechin dechin 78 Januari 15 17:06 module1.py
Kita boleh terus menggunakan python untuk menjalankan fail ini :
[dechin@dechin-manjaro excute]$ python3 module1.py
hello world!
Kami mendapati bahawa fail ini OK walaupun ia hanya mempunyai kebenaran membaca yang dijalankan. Untuk mengesahkan dengan ketat, kami mencipta satu lagi mod ujian di sini untuk mengimport fail python melalui import Adakah ia tidak memerlukan kebenaran boleh laku?
# module2.py from module1 import test if __name__ == '__main__': test()
Begitu juga, fail kami yang baru dibuat tidak diberikan kebenaran boleh laku:
[dechin@dechin-manjaro excute]$ ll
-r--r -- r-- 1 dechin dechin 78 Januari 15 17:06 modul1.py
-r--r--r-- 1 dechin dechin 64 Januari 15 17:44 modul2.py
Jom laksanakan fail module2.py:
[dechin@dechin-manjaro excute]$ python3 module2.py
hello world!
Kemudian ujian kami selesai. Telah disahkan bahawa melaksanakan fail py biasa tidak memerlukan kebenaran boleh laku, yang mempunyai inspirasi tertentu untuk kekangan pengecilan kebenaran kami.
Penjelasan prinsip
Terdapat balasan pada stackoverrun Pengarang cedbeu menerangkannya seperti ini: python sendiri menganggap peranan penghurai bahasa, dan fail py hanyalah fail teks, binari. yang sebenarnya dilaksanakan Fail adalah ular sawa dan bukannya fail py yang dicipta oleh pengguna. Oleh itu, walaupun keizinan boleh laku bagi fail py dialih keluar, fail py masih boleh dilaksanakan melalui python. Walau bagaimanapun, jika kami mengalih keluar kebenaran laksana python, kami tidak akan dapat melaksanakan tugas ini seperti biasa.
Ujian Lanjutan
Jika fail py disusun ke dalam fail format pyc dan pyo, adakah pelaksanaan tugasan pada masa ini memerlukan kebenaran boleh laku? Mula-mula uji fail pyc:
[dechin@dechin-manjaro excute]$ python3 -m py_compile module1.py
Selepas melaksanakan kompilasi, kami akan menemuinya dalam direktori semasa A __pycache__ folder, fail pyc yang disusun disimpan dalam direktori ini:
[dechin@dechin-manjaro excute]$ tree
.
├── module1 .py
├── module2.py
└── __pycache__
└── module1.cpython-38.pyc
1 direktori, 3 fail
-[denjaro] $ cd __pycache__/
[dechin@dechin-manjaro __pycache__]$ ll
Jumlah penggunaan 4
-rw-r--r-- 1 dechin dechin 259 Januari 15 18:01 modul1. pyc
Di sini kita melihat bahawa nama fail fail pyc akan mempunyai akhiran tetap, dan juga tiada kebenaran boleh laku Di sini kita menggunakan arahan yang sama untuk melaksanakan fail pyc:
[dechin@dechin-manjaro __pycache__]$ ll
-r--r--r-- 1 dechin dechin 259 Januari 15 18:01 module1.cpython-38.pyc
- rw -r--r-- 1 dechin dechin 259 Januari 15 18:13 module1.pyc
-r--r--r-- 1 dechin dechin 64 Januari 15 18:09 module2.py
[dechin@ dechin-manjaro __pycache__]$ python3 module1.cpython-38.pyc
hello world!
[dechin@dechin-manjaro __pycache__]$ python3 module2.py
hello world!
Di sini kita dapati bahawa sama ada fail pyc dilaksanakan secara langsung, atau ia dinamakan semula sebagai module1.pyc dan kemudian diimport melalui module2.py, ia boleh dilaksanakan seperti biasa dan tidak mempunyai kebenaran boleh laku. Seterusnya, mari cuba fail pyo sekali lagi:
[dechin@dechin-manjaro excute]$ python3 -O -m py_compile module1.py
Laksanakan dengan opt pyc file :
[dechin@dechin-manjaro __pycache__]$ python3 module1.cpython-38.opt-1.pyc
hello world!
Sama , boleh dilaksanakan seperti biasa, walaupun tiada kebenaran boleh laku.
Telur Paskah Teknikal
Walaupun kami menamakan semula fail pyc secara paksa kepada fail py, ia tidak akan menjejaskan pelaksanaan tugas:
[dechin@dechin- manjaro __pycache__] $ cp module1.cpython-38.opt-1.pyc module1.py
[dechin@dechin-manjaro __pycache__]$ ll
Jumlah penggunaan 20
-rw-r--r-- 1 dechin dechin 259 15 Januari 18:17 module1.cpython-38.opt-1.pyc
-r--r--r-- 1 dechin dechin 259 15 Januari 18:01 module1.cpython-38.pyc
-rw-r--r-- 1 dechin dechin 259 Januari 15 18:20 module1.py
-rw-r--r-- 1 dechin dechin 259 Januari 15 18:13 module1.pyc
-r--r--r-- 1 dechin dechin 64 Januari 15 18:09 module2.py
[dechin@dechin-manjaro __pycache__]$ python3 module1.py
hello world!
Atas ialah kandungan terperinci Adakah saya perlu menambah kebenaran boleh laku semasa menjalankan skrip Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Arraysinpython, terutamanya yang, arecrucialinscientificificputingputingfortheirefficiencyandversatility.1) mereka yang digunakan untuk

Anda boleh menguruskan versi python yang berbeza dengan menggunakan Pyenv, Venv dan Anaconda. 1) Gunakan pyenv untuk menguruskan pelbagai versi python: Pasang pyenv, tetapkan versi global dan tempatan. 2) Gunakan VENV untuk mewujudkan persekitaran maya untuk mengasingkan kebergantungan projek. 3) Gunakan Anaconda untuk menguruskan versi python dalam projek sains data anda. 4) Simpan sistem python untuk tugas peringkat sistem. Melalui alat dan strategi ini, anda dapat menguruskan versi Python yang berbeza untuk memastikan projek yang lancar.

Numpyarrayshaveseveraladvantagesoverstanderardpythonarrays: 1) thearemuchfasterduetoc-assedimplementation, 2) thearemorememory-efficient, antyedlargedataSets, and3) theyofferoptimized, vectorizedfuncionsformathhematicalicalicalicialisation

Kesan homogenitas tatasusunan pada prestasi adalah dwi: 1) homogenitas membolehkan pengkompil untuk mengoptimumkan akses memori dan meningkatkan prestasi; 2) tetapi mengehadkan kepelbagaian jenis, yang boleh menyebabkan ketidakcekapan. Singkatnya, memilih struktur data yang betul adalah penting.

ToCraftExecutablePythonscripts, ikutiTheseBestPractics: 1) addAshebangline (#!/Usr/bin/envpython3) tomakethescriptexecutable.2) setpermissionswithchmod xyour_script.py.3)

Numpyarraysarebetterfornumericationsoperationsandmulti-dimensialdata, whiletheArrayModuleissuitiableforbasic, ingatan-efisienArrays.1) numpyexcelsinperformanceandfunctionalityforlargedatasetsandcomplexoperations.2) thearrayModeMoremoremory-efficientModeMoremoremoremory-efficientModeMoremoremoremory-efficenceismemoremoremoremoremoremoremoremory-efficenceismemoremoremoremoremorem

NumpyarraysareBetterforheavynumericalcomputing, whilethearraymoduleismoresuitifFormemory-constrainedprojectswithsimpledatypes.1) numpyarraysofferversativilityandperformanceForlargedATAsetSandcomplexoperations.2)

ctypesallowscreatingandmanipulatingc-stylearraysinpython.1) usectypestointerwithclibrariesforperformance.2) createec-stylearraysfornumericalcomputations.3) Passarraystocfuntionsforficientsoperations.however, becautiousofmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmem


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa
