Hi Tony,

I’ve tried your suggestion but it doesn’t work.

The issue seems to be more “fundamental” as the import of the .Net System 
assembly doesn’t work.

Serge

From: pythondotnet-bounces+serge.weinstock=uk.bnpparibas....@python.org 
[mailto:pythondotnet-bounces+serge.weinstock=uk.bnpparibas....@python.org]
Sent: 19 August 2014 17:16
To: pythondotnet@python.org
Subject: Re: [Python.NET] Running an embedded interpreter

Hi Serge,

'mbcs' is what python uses to mean the current configured encoding. I would 
guess that the encoding of sys.stdout is different when using visual studio 
output console than the console.

You could try a different encoding method by setting the PYTHONIOENCODING 
environment variable before starting your exe, eg:
SET PYTHONIOENCODING=utf-8:ignore

Look for PYTHONIOENCODING here https://docs.python.org/3/using/cmdline.html for 
more details.

Tony



On Tue, Aug 19, 2014 at 2:22 PM, Serge WEINSTOCK 
<serge.weinst...@uk.bnpparibas.com<mailto:serge.weinst...@uk.bnpparibas.com>> 
wrote:
Hi,

I’m trying to use Python3.2 using the Python.Net version found at: 
https://github.com/renshawbay/pythonnet

I’m using the following simple test program:

//=======================================================================
using System;
using System.IO;
using Python.Runtime;

namespace TestPythonNet
{
    class Program
    {
        static void Main(string[] args)
        {
            string binDir = 
Path.GetDirectoryName(System.Reflection.Assembly.GetAssembly(typeof(Program)).Location);
            string pyHome = 
@"D:\src\scratch\TestPythonNet\TestPythonNet\PythonRuntime";
            PythonEngine.PythonHome = 
@"D:\src\scratch\TestPythonNet\TestPythonNet\PythonRuntime";
            PythonEngine.ProgramName = "PythonRuntime";
            Environment.SetEnvironmentVariable("PYTHONPATH",
                Path.GetFullPath(Path.Combine(pyHome, "DLLs")) + ";" +
                Path.GetFullPath(Path.Combine(pyHome, "Lib")) + ";" +
                Path.GetFullPath(Path.Combine(pyHome, "Lib", "site-packages")) 
+ ";" +
                binDir
                );
            Environment.SetEnvironmentVariable("PYTHONVERBOSE", "1");
            PythonEngine.Initialize();
            PythonEngine.ImportModule("clr");
            using (Py.GIL())
            {
                PythonEngine.RunSimpleString(
                    "import clr; " +
                   "a = clr.AddReference('System'); " +
                    "print(a.Location);" +
                    "from System import Environment;" +
                    "print(Environment.MachineName);");
            }
        }
    }
}
//=======================================================================

“D:\src\scratch\TestPythonNet\TestPythonNet\PythonRuntime” is a folder where 
I’ve copied the DLLs and Lib folder from a python 3.2 x86 distribution.


When I run it from Visual Studio it works fine (I guess it may be related to 
the fact that I’m using python tools for Visual Studio).

But when I run it from the console, it fails with the output:

//=======================================================================
Traceback (most recent call last):
  File "D:\src\scratch\TestPythonNet\TestPythonNet\PythonRuntime\Lib\site.py", 
line 481, in execsitecustomize
    import sitecustomize
UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1: 
invalid character
Traceback (most recent call last):
  File "D:\src\scratch\TestPythonNet\TestPythonNet\PythonRuntime\Lib\site.py", 
line 497, in execusercustomize
    import usercustomize
UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1: 
invalid character
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll
Traceback (most recent call last):
  File "<string>", line 1, in <module>
UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1: 
invalid character
//=======================================================================

The “print(a.Location);" works but not the “from System import Environment”. 
There are also all these errors about mbcs.

Any idea on what I’m doing wrong?

Thanks,
Serge Weinstock


___________________________________________________________
This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and delete this e-mail. Any unauthorised copying, 
disclosure or distribution of the material in this e-mail is prohibited.

Please refer to http://www.bnpparibas.co.uk/en/email-disclaimer/ for additional 
disclosures.

_________________________________________________
Python.NET mailing list - 
PythonDotNet@python.org<mailto:PythonDotNet@python.org>
https://mail.python.org/mailman/listinfo/pythondotnet


___________________________________________________________
This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and delete this e-mail. Any unauthorised copying, 
disclosure or distribution of the material in this e-mail is prohibited.

Please refer to http://www.bnpparibas.co.uk/en/email-disclaimer/ for additional 
disclosures.
_________________________________________________
Python.NET mailing list - PythonDotNet@python.org
https://mail.python.org/mailman/listinfo/pythondotnet

Reply via email to