2014-02-28 30 views
2

我想使用PTVS(Visual Studio的Python工具)開發一個應用程序位置,並且我下載了適用於Visual Studio 2012的PTVS pluging和IronPython,它完美地工作。使用PTVS,IronPython和MongoDB

我的問題在這裏,

我可以使用MongoDB的具有PTVS和ItonPython?

如果可以,我該怎麼辦?

我已經試着通過點擊Install Python Package來安裝它,但每次都要求我安裝pip並且安裝失敗。那麼當然命令pip install pymongo失敗,因爲沒有安裝pip。

以下是錯誤:

Installing 'pip' package manager. 
Downloading setuptools from https://go.microsoft.com/fwlink/?LinkId=317603 
Installing from setuptools-2.2 
<string>:1: DeprecationWarning: object.__init__() takes no parameters for type KeyedRef 
running install 
Traceback (most recent call last): 
    File "setup.py", line 202, in <module> 
    File "C:\Program Files (x86)\IronPython 2.7\Lib\distutils\core.py", line 151, in setup 
    File "C:\Program Files (x86)\IronPython 2.7\Lib\distutils\dist.py", line 952, in  run_commands 
    File "C:\Program Files (x86)\IronPython 2.7\Lib\distutils\dist.py", line 971, in  run_command 
    File "c:\users\dservicio1\appdata\local\temp\ptvs-zwgdmk-setuptools\setuptools- 2.2\setuptools\command\install.py", line 64, in run 
AttributeError: 'module' object has no attribute '_getframe'Traceback (most recent call  last): 
    File "C:\Program Files (x86)\Microsoft Visual Studio  11.0\Common7\IDE\Extensions\Microsoft\Python Tools for Visual Studio\2.0\pip_downloader.py",  line 61, in <module> 
    File "C:\Program Files (x86)\IronPython 2.7\Lib\subprocess.py", line 512, in  check_call 
subprocess.CalledProcessError: Command '['C:\\Program Files (x86)\\IronPython  2.7\\ipy.exe', 'setup.py', 'install']' returned non-zero exit status 1 
'pip' failed to install. Exit code: 1 
Installing 'pymongo' 
Unhandled exception: 
Traceback (most recent call last): 
    File "C:\Program Files (x86)\IronPython 2.7\Lib\runpy.py", line 170, in run_module 
    File "C:\Program Files (x86)\IronPython 2.7\Lib\runpy.py", line 103, in  _get_module_details 
ImportError: No module named pip 
'pymongo' failed to install. Exit code: 1 

有什麼建議?

謝謝!

回答

4

不幸的是,IronPython對pip和setuptools的支持依然存在。您可以嘗試通過以下these instructions手動配置pip,然後您應該能夠從PTVS安裝軟件包,但並非所有軟件包都可以與那些較舊版本的setuptools配合使用。

此外,許多軟件包將不會與IronPython,句點。基本上,如果包中包含任何本機代碼(.pyd文件),它將無法工作,因爲IronPython不實現CPython擴展性API。我懷疑PyMongo會是其中之一。

是否有任何特定的原因,你爲什麼要嘗試使用IronPython?請注意,PTVS完全支持常規Python。

+0

Thakns爲答案。我想使用IronPython的主要原因是因爲我想用WPF開發GUI應用程序,如果我使用常規Python,我認爲它不支持WPF。 – jesuscc29

2

你可能不能夠與IronPython的使用pymongo,但你可以從IronPython中使用C#/。NET驅動程序MongoDB的。

有關司機的信息是here。正如在這個鏈接中所解釋的,你可以用nuget(PM> Install-Package mongocsharpdriver)安裝,或者只需下載dll。

一旦安裝,就可以在IronPython中使用的組件以正常的方式:

# Add reference to the Mongo C# driver 
    import clr 
    clr.AddReferenceToFileAndPath("MongoDB.Bson.dll") 
    clr.AddReferenceToFileAndPath("MongoDB.Driver.dll") 

根據MongoDB C# Driver API然後用,例如:

# Get the MongoDB database 
    from MongoDB.Driver import MongoClient 
    client = MongoClient("mongodb://localhost") 
    server = client.GetServer() 
    database = server.GetDatabase("test") 

    # Get a collection 
    collection = database.GetCollection("users") 

    # Add a document 
    from MongoDB.Bson import BsonDocument 
    user = BsonDocument({'first_name':'John', 'last_name':'Smith'}) 
    collection.Insert(user) 

見的MongoDB C# Driver API瞭解更多信息。