cari
Rumahpembangunan bahagian belakangTutorial PythonAdakah 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!

Kenyataan
Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Bagaimana tatasusunan digunakan dalam pengkomputeran saintifik dengan python?Bagaimana tatasusunan digunakan dalam pengkomputeran saintifik dengan python?Apr 25, 2025 am 12:28 AM

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

Bagaimana anda mengendalikan versi python yang berbeza pada sistem yang sama?Bagaimana anda mengendalikan versi python yang berbeza pada sistem yang sama?Apr 25, 2025 am 12:24 AM

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.

Apakah beberapa kelebihan menggunakan array numpy melalui array python standard?Apakah beberapa kelebihan menggunakan array numpy melalui array python standard?Apr 25, 2025 am 12:21 AM

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

Bagaimanakah sifat tatasusunan homogen mempengaruhi prestasi?Bagaimanakah sifat tatasusunan homogen mempengaruhi prestasi?Apr 25, 2025 am 12:13 AM

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.

Apakah beberapa amalan terbaik untuk menulis skrip python yang boleh dilaksanakan?Apakah beberapa amalan terbaik untuk menulis skrip python yang boleh dilaksanakan?Apr 25, 2025 am 12:11 AM

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

Bagaimanakah array numpy berbeza dari tatasusunan yang dibuat menggunakan modul array?Bagaimanakah array numpy berbeza dari tatasusunan yang dibuat menggunakan modul array?Apr 24, 2025 pm 03:53 PM

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

Bagaimanakah penggunaan array Numpy berbanding dengan menggunakan array modul array di Python?Bagaimanakah penggunaan array Numpy berbanding dengan menggunakan array modul array di Python?Apr 24, 2025 pm 03:49 PM

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

Bagaimanakah modul CTYPES berkaitan dengan tatasusunan di Python?Bagaimanakah modul CTYPES berkaitan dengan tatasusunan di Python?Apr 24, 2025 pm 03:45 PM

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

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

mPDF

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

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa