Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの構成情報へのアクセス


Pythonのインストールの構成情報には、sysconfigモジュールからアクセスできます。たとえば、インストールパスのリストとインストールプラットフォームに固有の構成変数。

sysconfigモジュールは、構成変数にアクセスするための次の関数を提供します

sysconfig.get_config_vars()

引数がない場合、この関数は現在のプラットフォームに関連するすべての構成変数の辞書を返します。

>>> import sysconfig
>>> sysconfig.get_config_vars()
{'prefix': 'E:\\python37', 'exec_prefix': 'E:\\python37', 'py_version': '3.7.2', 'py_version_short':
'3.7', 'py_version_nodot': '37', 'installed_base': 'E:\\python37', 'base': 'E:\\python37',
'installed_platbase': 'E:\\python37', 'platbase': 'E:\\python37', 'projectbase': 'E:\\python37',
'abiflags': '', 'LIBDEST': 'E:\\python37\\Lib', 'BINLIBDEST': 'E:\\python37\\Lib', 'INCLUDEPY':
'E:\\python37\\Include', 'EXT_SUFFIX': '.pyd', 'EXE': '.exe', 'VERSION': '37', 'BINDIR':
'E:\\python37', 'SO': '.pyd', 'userbase': 'C:\\Users\\acer\\AppData\\Roaming\\Python', 'srcdir':
'E:\\python37'}

引数を使用して、特定のキーの値のリストを返します。引数ごとに、値が見つからない場合は、Noneを返します。

>>> sysconfig.get_config_vars('base','EXE')
['E:\\python37', '.exe']

sysconfig.get_config_var()

この関数は、単一の変数名の値を返します。これは、get_config_vars()。get(name)と同等です。名前が見つからない場合、関数はNoneを返します。

>>> sysconfig.get_config_var('VERSION')
'37'
>>> sysconfig.get_config_var('srcdir')
'E:\\python37'

Pythonは、プラットフォームとインストールオプションによって異なるインストールスキームを使用します。現在、次のスキームがサポートされています:

posix_prefix LinuxやMacOSXなどのPosixプラットフォームのスキーム。
posix_home インストール時にホームオプションを使用する場合に使用されるPosixプラットフォームのスキーム。
posix_user コンポーネントがDistutilsを介してインストールされ、ユーザーオプションが使用される場合に使用されるPosixプラットフォームのスキーム。
nt WindowsなどのNTプラットフォーム向けのスキーム。
nt_user ユーザーオプションが使用されている場合のNTプラットフォームのスキーム

get_path_names()

この関数は、sysconfigで現在サポートされているすべてのパス名を含むタプルを返します。

>>> sysconfig.get_path_names()
('stdlib', 'platstdlib', 'purelib', 'platlib', 'include', 'scripts', 'data')

各スキームは、一意の識別子を持つさまざまなパスで構成されています。パス名は次のとおりです。

stdlib プラットフォーム固有ではない標準のPythonライブラリファイルを含むディレクトリ。
platstdlib プラットフォーム固有の標準Pythonライブラリファイルを含むディレクトリ。
platlib サイト固有、プラットフォーム固有のファイルのディレクトリ。
purelib サイト固有、非プラットフォーム固有のファイルのディレクトリ。
インクルード プラットフォーム固有ではないヘッダーファイルのディレクトリ。
platinclude プラットフォーム固有のヘッダーファイルのディレクトリ。
スクリプト スクリプトファイルのディレクトリ。
データ データファイルのディレクトリ。

get_path()

この関数は、schemeという名前のインストールスキームから、パス名に対応するインストールパスを返します。

>>> sysconfig.get_path('include')
'E:\\python37\\Include'


>>> sysconfig.get_platform()
'win-amd64'

get_python_version()

この関数は、MAJOR.MINORPythonバージョン番号を文字列として返します。

get_platform()

この関数は、現在のプラットフォームを識別する文字列を返します。

構成変数とその値には、-mオプションを指定したsysconfigモジュールを使用してアクセスすることもできます。

E:\python37>python -m sysconfig
Platform: "win-amd64"
Python version: "3.7"
Current installation scheme: "nt"
Paths:
   data = "E:\python37"
   include = "E:\python37\Include"
   platinclude = "E:\python37\Include"
   platlib = "E:\python37\Lib\site-packages"
   platstdlib = "E:\python37\Lib"
   purelib = "E:\python37\Lib\site-packages"
   scripts = "E:\python37\Scripts"
   stdlib = "E:\python37\Lib"
Variables:
   BINDIR = "E:\python37"
   BINLIBDEST = "E:\python37\Lib"
   EXE = ".exe"
   EXT_SUFFIX = ".pyd"
   INCLUDEPY = "E:\python37\Include"
   LIBDEST = "E:\python37\Lib"
   SO = ".pyd"
   VERSION = "37"
   abiflags = ""
   base = "E:\python37"
   exec_prefix = "E:\python37"
   installed_base = "E:\python37"
   installed_platbase = "E:\python37"
   platbase = "E:\python37"
   prefix = "E:\python37"
   projectbase = "E:\python37"
   py_version = "3.7.2"
   py_version_nodot = "37"
   py_version_short = "3.7"
   srcdir = "E:\python37"
   userbase = "C:\Users\acer\AppData\Roaming\Python"

  1. PythonでPOSTメソッドを使用して情報を渡す

    CGIプログラムに情報を渡す一般的により信頼性の高い方法はPOST方法です。これは、GETメソッドとまったく同じ方法で情報をパッケージ化しますが、?の後にテキスト文字列として送信する代わりにURLでは、別のメッセージとして送信します。このメッセージは、標準入力の形式でCGIスクリプトに送られます。 例 以下は、GETメソッドとPOSTメソッドを処理する同じhello_get.pyスクリプトです。 #!/usr/bin/python Import modules for CGI handling import cgi, cgitb # Create instance of FieldStora

  2. PythonでGETメソッドを使用して情報を渡す

    GETメソッドは、ページリクエストに追加されたエンコードされたユーザー情報を送信します。ページとエンコードされた情報は?で区切られます次のような文字- https://www.test.com/cgi-bin/hello.py?key1=value1&key2=value2 GETメソッドは、ブラウザからWebサーバーに情報を渡すためのデフォルトのメソッドであり、ブラウザのLocation:boxに表示される長い文字列を生成します。サーバーに渡すパスワードやその他の機密情報がある場合は、GETメソッドを使用しないでください。 GETメソッドにはサイズ制限があります。リクエスト文字列で