python用法 - python plt軸




在Python中,如何有效地管理腳本文件之間的引用? (4)

你可以把可重用的東西放在site-packages 。 這是完全透明的,因為它默認在sys.path

你可以把一些someName.pth文件放在site-packages 。 這些文件有你的實際可重用的東西的生活目錄。 這也是完全透明的。 而不涉及在site-packages中安裝更改的額外步驟。

你可以把可重用的東西的目錄放在PYTHONPATH 。 這是一個不太透明,因為你必須確保它的設置。 不是火箭科學,但不完全透明。

我有相當數量的Python腳本包含可供其他Python腳本使用和引用的可重用代碼。 然而,這些腳本往往分散在不同的目錄中,我發現在我的頂級腳本中必須包含(通常是多次)調用sys.path.append是有點繁瑣的。 我只想在相同的腳本中提供沒有額外文件引用的“導入”語句。

目前,我有這樣的:

import sys
sys.path.append('..//shared1//reusable_foo')
import Foo
sys.path.append('..//shared2//reusable_bar')
import Bar

我的偏好是以下幾點:

import Foo
import Bar

我的背景主要是在.NET平台上,所以我習慣於使用* .csproj,* .vbproj,* .sln等元文件來管理和包含源文件之外的實際文件路徑引用。 這允許我只提供'using'指令(相當於Python的導入),而不暴露所有的引用,並允許在多個腳本中重用路徑引用本身。

Python是否有相應的支持,如果不是,有什麼技巧和方法?


在一個項目中,我想確保用戶可以將python腳本(基本上可以用作插件)放在任何地方。 我的解決方案是將以下內容放在該項目的配置文件中:

[server]
PYPATH_APPEND: /home/jason:/usr/share/some_directory

這樣,這將在程序啟動時將/ home / jason和/ usr / share / some_directory添加到python路徑。

然後,這只是一個簡單的問題,通過冒號拆分字符串,並將這些目錄添加到sys.path的末尾。 你可能要考慮在一個包含一個函數的site-packages目錄中添加一個模塊來讀取這個配置文件,並將這些目錄添加到sys.path(不幸的是,我現在沒有時間寫一個例子) 。

正如其他人所提到的那樣,盡可能多地在網站包中使用.pth文件是個好主意。 但是,如果你有一個腳本需要導入一些不在站點包中的東西,而你不想從其他腳本導入,這可能是一個好主意。

(也可能有一種方法可以使用.pth文件來做到這一點,但是我希望能夠在我放置配置信息的其餘部分的同一位置操作python路徑)


最簡單的方法是設置(或添加)PYTHONPATH,並將模塊和包放入(或符號鏈接)到PYTHONPATH中包含的路徑中。






metadata