[英]External dependencies, Haskell, stack: should I modify something or 'import' suppose to be sufficient?
對於Haskell以及堆棧我都是很新的。
import Data.Set
import Data.Stack
上面的語句觸發編譯錯誤: Could not find module 'Data.Set'. Perhaps you meant 'Data.Int'
Could not find module 'Data.Set'. Perhaps you meant 'Data.Int'
。 我試圖谷歌搜索,沒有發現類似的東西。
因此,我的問題是:我是否需要手動指定外部依賴項,還是只是我的stack build
命令為什么無法從某種程度的緩存或存儲庫中獲取適當的模塊?
如果我必須手動指定依賴項,我應該選擇.cabal
還是.yaml
? 處理版本控制的正確方法是什么?
[我需要手動指定外部依賴項嗎?
是。
由於使用的是Stack,因此很容易指定要在代碼中導入的依賴包。 根據您的Stack版本,默認配置可能有所不同:
如果使用最新版本的Stack創建項目,則會在項目的根目錄中看到package.yaml
(在這種情況下,使用hpack
來指定配置)。 您需要在其中添加包依賴關系,例如Data.Set
containers
。 這是我的一個項目中的依賴項部分的示例:
dependencies: - base >= 4.7 && < 5 - containers - time - network - bytestring
如果您使用的是較舊版本的stack
,但看不到package.yaml
,則需要編輯your-project-name.cabal
以添加依賴項。 這是完整的文檔,告訴您如何執行此操作: https : //docs.haskellstack.org/en/stable/GUIDE/#adding-dependencies
就個人而言,我更喜歡帶有hpack
( package.yaml
)的新系統。 基本上,它更簡單,並且可以節省您聲明所有模塊的時間(與依賴性無關)。 如果您有package.yaml
,請不要編輯.cabal
,它是hpack
自動生成的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.